home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / daolibb / dao2535.tlh < prev    next >
Text File  |  1999-02-28  |  99KB  |  3,300 lines

  1. // Created by Microsoft (R) C/C++ Compiler Version 12.00.8168.0 (140e9aa2).
  2. //
  3. // i:\devstudio\myprojects\daolib2\debug\dao2535.tlh
  4. //
  5. // C++ source equivalent of Win32 type library c:\Program Files\Common Files\Microsoft Shared\Dao\dao2535.tlb
  6. // compiler-generated file created 02/26/99 at 12:18:41 - DO NOT EDIT!
  7.  
  8. #pragma once
  9. #pragma pack(push, 8)
  10.  
  11. #include <comdef.h>
  12.  
  13. namespace DAO {
  14.  
  15. //
  16. // Forward references and typedefs
  17. //
  18.  
  19. struct __declspec(uuid("000000a0-0000-0010-8000-00aa006d2ea4"))
  20. /* dual interface */ _Collection;
  21. struct __declspec(uuid("000000a2-0000-0010-8000-00aa006d2ea4"))
  22. /* dual interface */ _DynaCollection;
  23. struct __declspec(uuid("0000000a-0000-0010-8000-00aa006d2ea4"))
  24. /* dual interface */ _DAO;
  25. struct __declspec(uuid("00000021-0000-0010-8000-00aa006d2ea4"))
  26. /* dual interface */ _DBEngine;
  27. struct /* coclass */ DBEngine;
  28. struct /* coclass */ PrivDBEngine;
  29. struct __declspec(uuid("00000023-0000-0010-8000-00aa006d2ea4"))
  30. /* dual interface */ Error;
  31. struct __declspec(uuid("00000025-0000-0010-8000-00aa006d2ea4"))
  32. /* dual interface */ Errors;
  33. struct __declspec(uuid("00000039-0000-0010-8000-00aa006d2ea4"))
  34. /* dual interface */ Workspace;
  35. struct __declspec(uuid("0000003b-0000-0010-8000-00aa006d2ea4"))
  36. /* dual interface */ Workspaces;
  37. struct __declspec(uuid("00000049-0000-0010-8000-00aa006d2ea4"))
  38. /* dual interface */ _TableDef;
  39. struct __declspec(uuid("0000004b-0000-0010-8000-00aa006d2ea4"))
  40. /* dual interface */ TableDefs;
  41. struct /* coclass */ TableDef;
  42. struct __declspec(uuid("00000071-0000-0010-8000-00aa006d2ea4"))
  43. /* dual interface */ Database;
  44. struct __declspec(uuid("00000073-0000-0010-8000-00aa006d2ea4"))
  45. /* dual interface */ Databases;
  46. struct __declspec(uuid("00000079-0000-0010-8000-00aa006d2ea4"))
  47. /* dual interface */ _QueryDef;
  48. struct __declspec(uuid("0000007b-0000-0010-8000-00aa006d2ea4"))
  49. /* dual interface */ QueryDefs;
  50. struct /* coclass */ QueryDef;
  51. struct __declspec(uuid("00000031-0000-0010-8000-00aa006d2ea4"))
  52. /* dual interface */ Recordset;
  53. struct __declspec(uuid("00000033-0000-0010-8000-00aa006d2ea4"))
  54. /* dual interface */ Recordsets;
  55. struct __declspec(uuid("00000051-0000-0010-8000-00aa006d2ea4"))
  56. /* dual interface */ _Field;
  57. struct /* coclass */ Field;
  58. struct __declspec(uuid("00000053-0000-0010-8000-00aa006d2ea4"))
  59. /* dual interface */ Fields;
  60. struct __declspec(uuid("00000059-0000-0010-8000-00aa006d2ea4"))
  61. /* dual interface */ _Index;
  62. struct /* coclass */ Index;
  63. struct __declspec(uuid("0000005b-0000-0010-8000-00aa006d2ea4"))
  64. /* dual interface */ Indexes;
  65. struct __declspec(uuid("0000005d-0000-0010-8000-00aa006d2ea4"))
  66. /* dual interface */ IndexFields;
  67. struct __declspec(uuid("00000081-0000-0010-8000-00aa006d2ea4"))
  68. /* dual interface */ Parameter;
  69. struct __declspec(uuid("00000083-0000-0010-8000-00aa006d2ea4"))
  70. /* dual interface */ Parameters;
  71. struct __declspec(uuid("00000069-0000-0010-8000-00aa006d2ea4"))
  72. /* dual interface */ _User;
  73. struct /* coclass */ User;
  74. struct __declspec(uuid("0000006b-0000-0010-8000-00aa006d2ea4"))
  75. /* dual interface */ Users;
  76. struct __declspec(uuid("00000061-0000-0010-8000-00aa006d2ea4"))
  77. /* dual interface */ _Group;
  78. struct /* coclass */ Group;
  79. struct __declspec(uuid("00000063-0000-0010-8000-00aa006d2ea4"))
  80. /* dual interface */ Groups;
  81. struct __declspec(uuid("00000089-0000-0010-8000-00aa006d2ea4"))
  82. /* dual interface */ _Relation;
  83. struct /* coclass */ Relation;
  84. struct __declspec(uuid("0000008b-0000-0010-8000-00aa006d2ea4"))
  85. /* dual interface */ Relations;
  86. struct __declspec(uuid("00000027-0000-0010-8000-00aa006d2ea4"))
  87. /* dual interface */ Property;
  88. struct __declspec(uuid("00000029-0000-0010-8000-00aa006d2ea4"))
  89. /* dual interface */ Properties;
  90. struct __declspec(uuid("00000091-0000-0010-8000-00aa006d2ea4"))
  91. /* dual interface */ Container;
  92. struct __declspec(uuid("00000093-0000-0010-8000-00aa006d2ea4"))
  93. /* dual interface */ Containers;
  94. struct __declspec(uuid("00000099-0000-0010-8000-00aa006d2ea4"))
  95. /* dual interface */ Document;
  96. struct __declspec(uuid("0000009b-0000-0010-8000-00aa006d2ea4"))
  97. /* dual interface */ Documents;
  98. struct __declspec(uuid("00000041-0000-0010-8000-00aa006d2ea4"))
  99. /* dual interface */ Connection;
  100. struct __declspec(uuid("00000043-0000-0010-8000-00aa006d2ea4"))
  101. /* dual interface */ Connections;
  102. struct __declspec(uuid("000000fd-0000-0010-8000-00aa006d2ea4"))
  103. /* dual interface */ Snapshot;
  104. struct __declspec(uuid("000000fe-0000-0010-8000-00aa006d2ea4"))
  105. /* dual interface */ Table;
  106. struct __declspec(uuid("000000ff-0000-0010-8000-00aa006d2ea4"))
  107. /* dual interface */ Dynaset;
  108.  
  109. //
  110. // Smart pointer typedef declarations
  111. //
  112.  
  113. _COM_SMARTPTR_TYPEDEF(_Collection, __uuidof(_Collection));
  114. _COM_SMARTPTR_TYPEDEF(_DynaCollection, __uuidof(_DynaCollection));
  115. _COM_SMARTPTR_TYPEDEF(_DAO, __uuidof(_DAO));
  116. _COM_SMARTPTR_TYPEDEF(_DBEngine, __uuidof(_DBEngine));
  117. _COM_SMARTPTR_TYPEDEF(Error, __uuidof(Error));
  118. _COM_SMARTPTR_TYPEDEF(Errors, __uuidof(Errors));
  119. _COM_SMARTPTR_TYPEDEF(Workspace, __uuidof(Workspace));
  120. _COM_SMARTPTR_TYPEDEF(Workspaces, __uuidof(Workspaces));
  121. _COM_SMARTPTR_TYPEDEF(_TableDef, __uuidof(_TableDef));
  122. _COM_SMARTPTR_TYPEDEF(TableDefs, __uuidof(TableDefs));
  123. _COM_SMARTPTR_TYPEDEF(Database, __uuidof(Database));
  124. _COM_SMARTPTR_TYPEDEF(Databases, __uuidof(Databases));
  125. _COM_SMARTPTR_TYPEDEF(_QueryDef, __uuidof(_QueryDef));
  126. _COM_SMARTPTR_TYPEDEF(QueryDefs, __uuidof(QueryDefs));
  127. _COM_SMARTPTR_TYPEDEF(Recordset, __uuidof(Recordset));
  128. _COM_SMARTPTR_TYPEDEF(Recordsets, __uuidof(Recordsets));
  129. _COM_SMARTPTR_TYPEDEF(_Field, __uuidof(_Field));
  130. _COM_SMARTPTR_TYPEDEF(Fields, __uuidof(Fields));
  131. _COM_SMARTPTR_TYPEDEF(_Index, __uuidof(_Index));
  132. _COM_SMARTPTR_TYPEDEF(Indexes, __uuidof(Indexes));
  133. _COM_SMARTPTR_TYPEDEF(IndexFields, __uuidof(IndexFields));
  134. _COM_SMARTPTR_TYPEDEF(Parameter, __uuidof(Parameter));
  135. _COM_SMARTPTR_TYPEDEF(Parameters, __uuidof(Parameters));
  136. _COM_SMARTPTR_TYPEDEF(_User, __uuidof(_User));
  137. _COM_SMARTPTR_TYPEDEF(Users, __uuidof(Users));
  138. _COM_SMARTPTR_TYPEDEF(_Group, __uuidof(_Group));
  139. _COM_SMARTPTR_TYPEDEF(Groups, __uuidof(Groups));
  140. _COM_SMARTPTR_TYPEDEF(_Relation, __uuidof(_Relation));
  141. _COM_SMARTPTR_TYPEDEF(Relations, __uuidof(Relations));
  142. _COM_SMARTPTR_TYPEDEF(Property, __uuidof(Property));
  143. _COM_SMARTPTR_TYPEDEF(Properties, __uuidof(Properties));
  144. _COM_SMARTPTR_TYPEDEF(Container, __uuidof(Container));
  145. _COM_SMARTPTR_TYPEDEF(Containers, __uuidof(Containers));
  146. _COM_SMARTPTR_TYPEDEF(Document, __uuidof(Document));
  147. _COM_SMARTPTR_TYPEDEF(Documents, __uuidof(Documents));
  148. _COM_SMARTPTR_TYPEDEF(Connection, __uuidof(Connection));
  149. _COM_SMARTPTR_TYPEDEF(Connections, __uuidof(Connections));
  150. _COM_SMARTPTR_TYPEDEF(Snapshot, __uuidof(Snapshot));
  151. _COM_SMARTPTR_TYPEDEF(Table, __uuidof(Table));
  152. _COM_SMARTPTR_TYPEDEF(Dynaset, __uuidof(Dynaset));
  153.  
  154. //
  155. // Type library items
  156. //
  157.  
  158. enum RecordsetTypeEnum
  159. {
  160.     dbOpenTable = 1,
  161.     dbOpenDynaset = 2,
  162.     dbOpenSnapshot = 4,
  163.     dbOpenForwardOnly = 8,
  164.     dbOpenDynamic = 16
  165. };
  166.  
  167. enum EditModeEnum
  168. {
  169.     dbEditNone = 0,
  170.     dbEditInProgress = 1,
  171.     dbEditAdd = 2,
  172.     dbEditChanged = 4,
  173.     dbEditDeleted = 8,
  174.     dbEditNew = 16
  175. };
  176.  
  177. enum RecordsetOptionEnum
  178. {
  179.     dbDenyWrite = 1,
  180.     dbDenyRead = 2,
  181.     dbReadOnly = 4,
  182.     dbAppendOnly = 8,
  183.     dbInconsistent = 16,
  184.     dbConsistent = 32,
  185.     dbSQLPassThrough = 64,
  186.     dbFailOnError = 128,
  187.     dbForwardOnly = 256,
  188.     dbSeeChanges = 512,
  189.     dbRunAsync = 1024,
  190.     dbExecDirect = 2048
  191. };
  192.  
  193. enum LockTypeEnum
  194. {
  195.     dbPessimistic = 2,
  196.     dbOptimistic = 3,
  197.     dbOptimisticValue = 1,
  198.     dbOptimisticBatch = 5
  199. };
  200.  
  201. enum UpdateCriteriaEnum
  202. {
  203.     dbCriteriaKey = 1,
  204.     dbCriteriaModValues = 2,
  205.     dbCriteriaAllCols = 4,
  206.     dbCriteriaTimestamp = 8,
  207.     dbCriteriaDeleteInsert = 16,
  208.     dbCriteriaUpdate = 32
  209. };
  210.  
  211. enum FieldAttributeEnum
  212. {
  213.     dbFixedField = 1,
  214.     dbVariableField = 2,
  215.     dbAutoIncrField = 16,
  216.     dbUpdatableField = 32,
  217.     dbSystemField = 8192,
  218.     dbHyperlinkField = 32768,
  219.     dbDescending = 1
  220. };
  221.  
  222. enum DataTypeEnum
  223. {
  224.     dbBoolean = 1,
  225.     dbByte = 2,
  226.     dbInteger = 3,
  227.     dbLong = 4,
  228.     dbCurrency = 5,
  229.     dbSingle = 6,
  230.     dbDouble = 7,
  231.     dbDate = 8,
  232.     dbBinary = 9,
  233.     dbText = 10,
  234.     dbLongBinary = 11,
  235.     dbMemo = 12,
  236.     dbGUID = 15,
  237.     dbBigInt = 16,
  238.     dbVarBinary = 17,
  239.     dbChar = 18,
  240.     dbNumeric = 19,
  241.     dbDecimal = 20,
  242.     dbFloat = 21,
  243.     dbTime = 22,
  244.     dbTimeStamp = 23
  245. };
  246.  
  247. enum RelationAttributeEnum
  248. {
  249.     dbRelationUnique = 1,
  250.     dbRelationDontEnforce = 2,
  251.     dbRelationInherited = 4,
  252.     dbRelationUpdateCascade = 256,
  253.     dbRelationDeleteCascade = 4096,
  254.     dbRelationLeft = 16777216,
  255.     dbRelationRight = 33554432
  256. };
  257.  
  258. enum TableDefAttributeEnum
  259. {
  260.     dbAttachExclusive = 65536,
  261.     dbAttachSavePWD = 131072,
  262.     dbSystemObject = -2147483646,
  263.     dbAttachedTable = 1073741824,
  264.     dbAttachedODBC = 536870912,
  265.     dbHiddenObject = 1
  266. };
  267.  
  268. enum QueryDefTypeEnum
  269. {
  270.     dbQSelect = 0,
  271.     dbQProcedure = 224,
  272.     dbQAction = 240,
  273.     dbQCrosstab = 16,
  274.     dbQDelete = 32,
  275.     dbQUpdate = 48,
  276.     dbQAppend = 64,
  277.     dbQMakeTable = 80,
  278.     dbQDDL = 96,
  279.     dbQSQLPassThrough = 112,
  280.     dbQSetOperation = 128,
  281.     dbQSPTBulk = 144,
  282.     dbQCompound = 160
  283. };
  284.  
  285. enum QueryDefStateEnum
  286. {
  287.     dbQPrepare = 1,
  288.     dbQUnprepare = 2
  289. };
  290.  
  291. enum DatabaseTypeEnum
  292. {
  293.     dbVersion10 = 1,
  294.     dbEncrypt = 2,
  295.     dbDecrypt = 4,
  296.     dbVersion11 = 8,
  297.     dbVersion20 = 16,
  298.     dbVersion30 = 32
  299. };
  300.  
  301. enum CollatingOrderEnum
  302. {
  303.     dbSortNeutral = 1024,
  304.     dbSortArabic = 1025,
  305.     dbSortCyrillic = 1049,
  306.     dbSortCzech = 1029,
  307.     dbSortDutch = 1043,
  308.     dbSortGeneral = 1033,
  309.     dbSortGreek = 1032,
  310.     dbSortHebrew = 1037,
  311.     dbSortHungarian = 1038,
  312.     dbSortIcelandic = 1039,
  313.     dbSortNorwdan = 1030,
  314.     dbSortPDXIntl = 1033,
  315.     dbSortPDXNor = 1030,
  316.     dbSortPDXSwe = 1053,
  317.     dbSortPolish = 1045,
  318.     dbSortSpanish = 1034,
  319.     dbSortSwedFin = 1053,
  320.     dbSortTurkish = 1055,
  321.     dbSortJapanese = 1041,
  322.     dbSortChineseSimplified = 2052,
  323.     dbSortChineseTraditional = 1028,
  324.     dbSortKorean = 1042,
  325.     dbSortThai = 1054,
  326.     dbSortSlovenian = 1060,
  327.     dbSortUndefined = -1
  328. };
  329.  
  330. enum IdleEnum
  331. {
  332.     dbFreeLocks = 1,
  333.     dbRefreshCache = 8
  334. };
  335.  
  336. enum PermissionEnum
  337. {
  338.     dbSecNoAccess = 0,
  339.     dbSecFullAccess = 1048575,
  340.     dbSecDelete = 65536,
  341.     dbSecReadSec = 131072,
  342.     dbSecWriteSec = 262144,
  343.     dbSecWriteOwner = 524288,
  344.     dbSecDBCreate = 1,
  345.     dbSecDBOpen = 2,
  346.     dbSecDBExclusive = 4,
  347.     dbSecDBAdmin = 8,
  348.     dbSecCreate = 1,
  349.     dbSecReadDef = 4,
  350.     dbSecWriteDef = 65548,
  351.     dbSecRetrieveData = 20,
  352.     dbSecInsertData = 32,
  353.     dbSecReplaceData = 64,
  354.     dbSecDeleteData = 128
  355. };
  356.  
  357. enum SynchronizeTypeEnum
  358. {
  359.     dbRepExportChanges = 1,
  360.     dbRepImportChanges = 2,
  361.     dbRepImpExpChanges = 4,
  362.     dbRepSyncInternet = 16
  363. };
  364.  
  365. enum ReplicaTypeEnum
  366. {
  367.     dbRepMakeReadOnly = 2,
  368.     dbRepMakePartial = 1
  369. };
  370.  
  371. enum WorkspaceTypeEnum
  372. {
  373.     dbUseODBC = 1,
  374.     dbUseJet = 2
  375. };
  376.  
  377. enum CursorDriverEnum
  378. {
  379.     dbUseDefaultCursor = -1,
  380.     dbUseODBCCursor = 1,
  381.     dbUseServerCursor = 2,
  382.     dbUseClientBatchCursor = 3,
  383.     dbUseNoCursor = 4
  384. };
  385.  
  386. enum DriverPromptEnum
  387. {
  388.     dbDriverPrompt = 2,
  389.     dbDriverNoPrompt = 1,
  390.     dbDriverComplete = 0,
  391.     dbDriverCompleteRequired = 3
  392. };
  393.  
  394. enum SetOptionEnum
  395. {
  396.     dbPageTimeout = 6,
  397.     dbLockRetry = 57,
  398.     dbMaxBufferSize = 8,
  399.     dbUserCommitSync = 58,
  400.     dbImplicitCommitSync = 59,
  401.     dbExclusiveAsyncDelay = 60,
  402.     dbSharedAsyncDelay = 61,
  403.     dbMaxLocksPerFile = 62,
  404.     dbLockDelay = 63,
  405.     dbRecycleLVs = 65,
  406.     dbFlushTransactionTimeout = 66
  407. };
  408.  
  409. enum ParameterDirectionEnum
  410. {
  411.     dbParamInput = 1,
  412.     dbParamOutput = 2,
  413.     dbParamInputOutput = 3,
  414.     dbParamReturnValue = 4
  415. };
  416.  
  417. enum UpdateTypeEnum
  418. {
  419.     dbUpdateBatch = 4,
  420.     dbUpdateRegular = 1,
  421.     dbUpdateCurrentRecord = 2
  422. };
  423.  
  424. enum RecordStatusEnum
  425. {
  426.     dbRecordUnmodified = 0,
  427.     dbRecordModified = 1,
  428.     dbRecordNew = 2,
  429.     dbRecordDeleted = 3,
  430.     dbRecordDBDeleted = 4
  431. };
  432.  
  433. enum CommitTransOptionsEnum
  434. {
  435.     dbForceOSFlush = 1
  436. };
  437.  
  438. enum _DAOSuppHelp
  439. {
  440.     LogMessages = 0,
  441.     KeepLocal = 0,
  442.     Replicable = 0,
  443.     ReplicableBool = 0,
  444.     V1xNullBehavior = 0
  445. };
  446.  
  447. struct __declspec(uuid("000000a0-0000-0010-8000-00aa006d2ea4"))
  448. _Collection : IDispatch
  449. {
  450.     //
  451.     // Property data
  452.     //
  453.  
  454.     __declspec(property(get=GetCount))
  455.     short Count;
  456.  
  457.     //
  458.     // Wrapper methods for error-handling
  459.     //
  460.  
  461.     short GetCount ( );
  462.     IUnknownPtr _NewEnum ( );
  463.     HRESULT Refresh ( );
  464.  
  465.     //
  466.     // Raw methods provided by interface
  467.     //
  468.  
  469.     virtual HRESULT __stdcall get_Count (
  470.         short * c ) = 0;
  471.     virtual HRESULT __stdcall raw__NewEnum (
  472.         IUnknown * * ppunk ) = 0;
  473.     virtual HRESULT __stdcall raw_Refresh ( ) = 0;
  474. };
  475.  
  476. struct __declspec(uuid("000000a2-0000-0010-8000-00aa006d2ea4"))
  477. _DynaCollection : _Collection
  478. {
  479.     //
  480.     // Wrapper methods for error-handling
  481.     //
  482.  
  483.     HRESULT Append (
  484.         IDispatch * Object );
  485.     HRESULT Delete (
  486.         _bstr_t Name );
  487.  
  488.     //
  489.     // Raw methods provided by interface
  490.     //
  491.  
  492.     virtual HRESULT __stdcall raw_Append (
  493.         IDispatch * Object ) = 0;
  494.     virtual HRESULT __stdcall raw_Delete (
  495.         BSTR Name ) = 0;
  496. };
  497.  
  498. struct __declspec(uuid("0000000a-0000-0010-8000-00aa006d2ea4"))
  499. _DAO : IDispatch
  500. {
  501.     //
  502.     // Property data
  503.     //
  504.  
  505.     __declspec(property(get=GetProperties))
  506.     PropertiesPtr Properties;
  507.  
  508.     //
  509.     // Wrapper methods for error-handling
  510.     //
  511.  
  512.     PropertiesPtr GetProperties ( );
  513.  
  514.     //
  515.     // Raw methods provided by interface
  516.     //
  517.  
  518.     virtual HRESULT __stdcall get_Properties (
  519.         struct Properties * * ppprops ) = 0;
  520. };
  521.  
  522. struct __declspec(uuid("00000021-0000-0010-8000-00aa006d2ea4"))
  523. _DBEngine : _DAO
  524. {
  525.     //
  526.     // Property data
  527.     //
  528.  
  529.     __declspec(property(get=GetVersion))
  530.     _bstr_t Version;
  531.     __declspec(property(get=GetIniPath,put=PutIniPath))
  532.     _bstr_t IniPath;
  533.     __declspec(property(get=GetWorkspaces))
  534.     WorkspacesPtr Workspaces;
  535.     __declspec(property(put=PutDefaultUser))
  536.     _bstr_t DefaultUser;
  537.     __declspec(property(put=PutDefaultPassword))
  538.     _bstr_t DefaultPassword;
  539.     __declspec(property(get=GetLoginTimeout,put=PutLoginTimeout))
  540.     short LoginTimeout;
  541.     __declspec(property(get=GetErrors))
  542.     ErrorsPtr Errors;
  543.     __declspec(property(get=GetSystemDB,put=PutSystemDB))
  544.     _bstr_t SystemDB;
  545.     __declspec(property(get=GetDefaultType,put=PutDefaultType))
  546.     long DefaultType;
  547.  
  548.     //
  549.     // Wrapper methods for error-handling
  550.     //
  551.  
  552.     _bstr_t GetVersion ( );
  553.     _bstr_t GetIniPath ( );
  554.     void PutIniPath (
  555.         _bstr_t pbstr );
  556.     void PutDefaultUser (
  557.         _bstr_t _arg1 );
  558.     void PutDefaultPassword (
  559.         _bstr_t _arg1 );
  560.     short GetLoginTimeout ( );
  561.     void PutLoginTimeout (
  562.         short ps );
  563.     WorkspacesPtr GetWorkspaces ( );
  564.     ErrorsPtr GetErrors ( );
  565.     HRESULT Idle (
  566.         const _variant_t & Action = vtMissing );
  567.     HRESULT CompactDatabase (
  568.         _bstr_t SrcName,
  569.         _bstr_t DstName,
  570.         const _variant_t & DstLocale = vtMissing,
  571.         const _variant_t & Options = vtMissing,
  572.         const _variant_t & SrcLocale = vtMissing );
  573.     HRESULT RepairDatabase (
  574.         _bstr_t Name );
  575.     HRESULT RegisterDatabase (
  576.         _bstr_t Dsn,
  577.         _bstr_t Driver,
  578.         VARIANT_BOOL Silent,
  579.         _bstr_t Attributes );
  580.     WorkspacePtr _30_CreateWorkspace (
  581.         _bstr_t Name,
  582.         _bstr_t UserName,
  583.         _bstr_t Password );
  584.     DatabasePtr OpenDatabase (
  585.         _bstr_t Name,
  586.         const _variant_t & Options = vtMissing,
  587.         const _variant_t & ReadOnly = vtMissing,
  588.         const _variant_t & Connect = vtMissing );
  589.     DatabasePtr CreateDatabase (
  590.         _bstr_t Name,
  591.         _bstr_t Locale,
  592.         const _variant_t & Option = vtMissing );
  593.     HRESULT FreeLocks ( );
  594.     HRESULT BeginTrans ( );
  595.     HRESULT CommitTrans (
  596.         long Option );
  597.     HRESULT Rollback ( );
  598.     HRESULT SetDefaultWorkspace (
  599.         _bstr_t Name,
  600.         _bstr_t Password );
  601.     HRESULT SetDataAccessOption (
  602.         short Option,
  603.         const _variant_t & Value );
  604.     long ISAMStats (
  605.         long StatNum,
  606.         const _variant_t & Reset = vtMissing );
  607.     _bstr_t GetSystemDB ( );
  608.     void PutSystemDB (
  609.         _bstr_t pbstr );
  610.     WorkspacePtr CreateWorkspace (
  611.         _bstr_t Name,
  612.         _bstr_t UserName,
  613.         _bstr_t Password,
  614.         const _variant_t & UseType = vtMissing );
  615.     ConnectionPtr OpenConnection (
  616.         _bstr_t Name,
  617.         const _variant_t & Options = vtMissing,
  618.         const _variant_t & ReadOnly = vtMissing,
  619.         const _variant_t & Connect = vtMissing );
  620.     long GetDefaultType ( );
  621.     void PutDefaultType (
  622.         long Option );
  623.     HRESULT SetOption (
  624.         long Option,
  625.         const _variant_t & Value );
  626.  
  627.     //
  628.     // Raw methods provided by interface
  629.     //
  630.  
  631.     virtual HRESULT __stdcall get_Version (
  632.         BSTR * pbstr ) = 0;
  633.     virtual HRESULT __stdcall get_IniPath (
  634.         BSTR * pbstr ) = 0;
  635.     virtual HRESULT __stdcall put_IniPath (
  636.         BSTR pbstr ) = 0;
  637.     virtual HRESULT __stdcall put_DefaultUser (
  638.         BSTR _arg1 ) = 0;
  639.     virtual HRESULT __stdcall put_DefaultPassword (
  640.         BSTR _arg1 ) = 0;
  641.     virtual HRESULT __stdcall get_LoginTimeout (
  642.         short * ps ) = 0;
  643.     virtual HRESULT __stdcall put_LoginTimeout (
  644.         short ps ) = 0;
  645.     virtual HRESULT __stdcall get_Workspaces (
  646.         struct Workspaces * * ppworks ) = 0;
  647.     virtual HRESULT __stdcall get_Errors (
  648.         struct Errors * * pperrs ) = 0;
  649.     virtual HRESULT __stdcall raw_Idle (
  650.         VARIANT Action = vtMissing ) = 0;
  651.     virtual HRESULT __stdcall raw_CompactDatabase (
  652.         BSTR SrcName,
  653.         BSTR DstName,
  654.         VARIANT DstLocale = vtMissing,
  655.         VARIANT Options = vtMissing,
  656.         VARIANT SrcLocale = vtMissing ) = 0;
  657.     virtual HRESULT __stdcall raw_RepairDatabase (
  658.         BSTR Name ) = 0;
  659.     virtual HRESULT __stdcall raw_RegisterDatabase (
  660.         BSTR Dsn,
  661.         BSTR Driver,
  662.         VARIANT_BOOL Silent,
  663.         BSTR Attributes ) = 0;
  664.     virtual HRESULT __stdcall raw__30_CreateWorkspace (
  665.         BSTR Name,
  666.         BSTR UserName,
  667.         BSTR Password,
  668.         struct Workspace * * ppwrk ) = 0;
  669.     virtual HRESULT __stdcall raw_OpenDatabase (
  670.         BSTR Name,
  671.         VARIANT Options,
  672.         VARIANT ReadOnly,
  673.         VARIANT Connect,
  674.         struct Database * * ppdb ) = 0;
  675.     virtual HRESULT __stdcall raw_CreateDatabase (
  676.         BSTR Name,
  677.         BSTR Locale,
  678.         VARIANT Option,
  679.         struct Database * * ppdb ) = 0;
  680.     virtual HRESULT __stdcall raw_FreeLocks ( ) = 0;
  681.     virtual HRESULT __stdcall raw_BeginTrans ( ) = 0;
  682.     virtual HRESULT __stdcall raw_CommitTrans (
  683.         long Option ) = 0;
  684.     virtual HRESULT __stdcall raw_Rollback ( ) = 0;
  685.     virtual HRESULT __stdcall raw_SetDefaultWorkspace (
  686.         BSTR Name,
  687.         BSTR Password ) = 0;
  688.     virtual HRESULT __stdcall raw_SetDataAccessOption (
  689.         short Option,
  690.         VARIANT Value ) = 0;
  691.     virtual HRESULT __stdcall raw_ISAMStats (
  692.         long StatNum,
  693.         VARIANT Reset,
  694.         long * pl ) = 0;
  695.     virtual HRESULT __stdcall get_SystemDB (
  696.         BSTR * pbstr ) = 0;
  697.     virtual HRESULT __stdcall put_SystemDB (
  698.         BSTR pbstr ) = 0;
  699.     virtual HRESULT __stdcall raw_CreateWorkspace (
  700.         BSTR Name,
  701.         BSTR UserName,
  702.         BSTR Password,
  703.         VARIANT UseType,
  704.         struct Workspace * * ppwrk ) = 0;
  705.     virtual HRESULT __stdcall raw_OpenConnection (
  706.         BSTR Name,
  707.         VARIANT Options,
  708.         VARIANT ReadOnly,
  709.         VARIANT Connect,
  710.         struct Connection * * ppconn ) = 0;
  711.     virtual HRESULT __stdcall get_DefaultType (
  712.         long * Option ) = 0;
  713.     virtual HRESULT __stdcall put_DefaultType (
  714.         long Option ) = 0;
  715.     virtual HRESULT __stdcall raw_SetOption (
  716.         long Option,
  717.         VARIANT Value ) = 0;
  718. };
  719.  
  720. struct __declspec(uuid("00000010-0000-0010-8000-00aa006d2ea4"))
  721. DBEngine;
  722.     // [ default ] interface _DBEngine
  723.  
  724. struct __declspec(uuid("00000011-0000-0010-8000-00aa006d2ea4"))
  725. PrivDBEngine;
  726.     // [ default ] interface _DBEngine
  727.  
  728. struct __declspec(uuid("00000023-0000-0010-8000-00aa006d2ea4"))
  729. Error : IDispatch
  730. {
  731.     //
  732.     // Property data
  733.     //
  734.  
  735.     __declspec(property(get=GetNumber))
  736.     long Number;
  737.     __declspec(property(get=GetSource))
  738.     _bstr_t Source;
  739.     __declspec(property(get=GetDescription))
  740.     _bstr_t Description;
  741.     __declspec(property(get=GetHelpFile))
  742.     _bstr_t HelpFile;
  743.     __declspec(property(get=GetHelpContext))
  744.     long HelpContext;
  745.  
  746.     //
  747.     // Wrapper methods for error-handling
  748.     //
  749.  
  750.     long GetNumber ( );
  751.     _bstr_t GetSource ( );
  752.     _bstr_t GetDescription ( );
  753.     _bstr_t GetHelpFile ( );
  754.     long GetHelpContext ( );
  755.  
  756.     //
  757.     // Raw methods provided by interface
  758.     //
  759.  
  760.     virtual HRESULT __stdcall get_Number (
  761.         long * pl ) = 0;
  762.     virtual HRESULT __stdcall get_Source (
  763.         BSTR * pbstr ) = 0;
  764.     virtual HRESULT __stdcall get_Description (
  765.         BSTR * pbstr ) = 0;
  766.     virtual HRESULT __stdcall get_HelpFile (
  767.         BSTR * pbstr ) = 0;
  768.     virtual HRESULT __stdcall get_HelpContext (
  769.         long * pl ) = 0;
  770. };
  771.  
  772. struct __declspec(uuid("00000025-0000-0010-8000-00aa006d2ea4"))
  773. Errors : _Collection
  774. {
  775.     //
  776.     // Property data
  777.     //
  778.  
  779.     __declspec(property(get=GetItem))
  780.     ErrorPtr Item[];
  781.  
  782.     //
  783.     // Wrapper methods for error-handling
  784.     //
  785.  
  786.     ErrorPtr GetItem (
  787.         const _variant_t & Index );
  788.  
  789.     //
  790.     // Raw methods provided by interface
  791.     //
  792.  
  793.     virtual HRESULT __stdcall get_Item (
  794.         VARIANT Index,
  795.         struct Error * * pperr ) = 0;
  796. };
  797.  
  798. struct __declspec(uuid("00000039-0000-0010-8000-00aa006d2ea4"))
  799. Workspace : _DAO
  800. {
  801.     //
  802.     // Property data
  803.     //
  804.  
  805.     __declspec(property(get=GetName,put=PutName))
  806.     _bstr_t Name;
  807.     __declspec(property(get=GetDatabases))
  808.     DatabasesPtr Databases;
  809.     __declspec(property(get=GetUserName))
  810.     _bstr_t UserName;
  811.     __declspec(property(put=Put_30_UserName))
  812.     _bstr_t _30_UserName;
  813.     __declspec(property(put=Put_30_Password))
  814.     _bstr_t _30_Password;
  815.     __declspec(property(get=GetIsolateODBCTrans,put=PutIsolateODBCTrans))
  816.     short IsolateODBCTrans;
  817.     __declspec(property(get=GetUsers))
  818.     UsersPtr Users;
  819.     __declspec(property(get=GetGroups))
  820.     GroupsPtr Groups;
  821.     __declspec(property(get=GetLoginTimeout,put=PutLoginTimeout))
  822.     long LoginTimeout;
  823.     __declspec(property(get=GetDefaultCursorDriver,put=PutDefaultCursorDriver))
  824.     long DefaultCursorDriver;
  825.     __declspec(property(get=GethEnv))
  826.     long hEnv;
  827.     __declspec(property(get=GetType))
  828.     long Type;
  829.     __declspec(property(get=GetConnections))
  830.     ConnectionsPtr Connections;
  831.  
  832.     //
  833.     // Wrapper methods for error-handling
  834.     //
  835.  
  836.     _bstr_t GetName ( );
  837.     void PutName (
  838.         _bstr_t pbstr );
  839.     _bstr_t GetUserName ( );
  840.     void Put_30_UserName (
  841.         _bstr_t _arg1 );
  842.     void Put_30_Password (
  843.         _bstr_t _arg1 );
  844.     short GetIsolateODBCTrans ( );
  845.     void PutIsolateODBCTrans (
  846.         short ps );
  847.     DatabasesPtr GetDatabases ( );
  848.     UsersPtr GetUsers ( );
  849.     GroupsPtr GetGroups ( );
  850.     HRESULT BeginTrans ( );
  851.     HRESULT CommitTrans (
  852.         long Options );
  853.     HRESULT Close ( );
  854.     HRESULT Rollback ( );
  855.     DatabasePtr OpenDatabase (
  856.         _bstr_t Name,
  857.         const _variant_t & Options = vtMissing,
  858.         const _variant_t & ReadOnly = vtMissing,
  859.         const _variant_t & Connect = vtMissing );
  860.     DatabasePtr CreateDatabase (
  861.         _bstr_t Name,
  862.         _bstr_t Connect,
  863.         const _variant_t & Option = vtMissing );
  864.     _UserPtr CreateUser (
  865.         const _variant_t & Name = vtMissing,
  866.         const _variant_t & PID = vtMissing,
  867.         const _variant_t & Password = vtMissing );
  868.     _GroupPtr CreateGroup (
  869.         const _variant_t & Name = vtMissing,
  870.         const _variant_t & PID = vtMissing );
  871.     ConnectionPtr OpenConnection (
  872.         _bstr_t Name,
  873.         const _variant_t & Options = vtMissing,
  874.         const _variant_t & ReadOnly = vtMissing,
  875.         const _variant_t & Connect = vtMissing );
  876.     long GetLoginTimeout ( );
  877.     void PutLoginTimeout (
  878.         long pTimeout );
  879.     long GetDefaultCursorDriver ( );
  880.     void PutDefaultCursorDriver (
  881.         long pCursorType );
  882.     long GethEnv ( );
  883.     long GetType ( );
  884.     ConnectionsPtr GetConnections ( );
  885.  
  886.     //
  887.     // Raw methods provided by interface
  888.     //
  889.  
  890.     virtual HRESULT __stdcall get_Name (
  891.         BSTR * pbstr ) = 0;
  892.     virtual HRESULT __stdcall put_Name (
  893.         BSTR pbstr ) = 0;
  894.     virtual HRESULT __stdcall get_UserName (
  895.         BSTR * pbstr ) = 0;
  896.     virtual HRESULT __stdcall put__30_UserName (
  897.         BSTR _arg1 ) = 0;
  898.     virtual HRESULT __stdcall put__30_Password (
  899.         BSTR _arg1 ) = 0;
  900.     virtual HRESULT __stdcall get_IsolateODBCTrans (
  901.         short * ps ) = 0;
  902.     virtual HRESULT __stdcall put_IsolateODBCTrans (
  903.         short ps ) = 0;
  904.     virtual HRESULT __stdcall get_Databases (
  905.         struct Databases * * ppdbs ) = 0;
  906.     virtual HRESULT __stdcall get_Users (
  907.         struct Users * * ppusrs ) = 0;
  908.     virtual HRESULT __stdcall get_Groups (
  909.         struct Groups * * ppgrps ) = 0;
  910.     virtual HRESULT __stdcall raw_BeginTrans ( ) = 0;
  911.     virtual HRESULT __stdcall raw_CommitTrans (
  912.         long Options ) = 0;
  913.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  914.     virtual HRESULT __stdcall raw_Rollback ( ) = 0;
  915.     virtual HRESULT __stdcall raw_OpenDatabase (
  916.         BSTR Name,
  917.         VARIANT Options,
  918.         VARIANT ReadOnly,
  919.         VARIANT Connect,
  920.         struct Database * * ppdb ) = 0;
  921.     virtual HRESULT __stdcall raw_CreateDatabase (
  922.         BSTR Name,
  923.         BSTR Connect,
  924.         VARIANT Option,
  925.         struct Database * * ppdb ) = 0;
  926.     virtual HRESULT __stdcall raw_CreateUser (
  927.         VARIANT Name,
  928.         VARIANT PID,
  929.         VARIANT Password,
  930.         struct _User * * ppusr ) = 0;
  931.     virtual HRESULT __stdcall raw_CreateGroup (
  932.         VARIANT Name,
  933.         VARIANT PID,
  934.         struct _Group * * ppgrp ) = 0;
  935.     virtual HRESULT __stdcall raw_OpenConnection (
  936.         BSTR Name,
  937.         VARIANT Options,
  938.         VARIANT ReadOnly,
  939.         VARIANT Connect,
  940.         struct Connection * * ppconn ) = 0;
  941.     virtual HRESULT __stdcall get_LoginTimeout (
  942.         long * pTimeout ) = 0;
  943.     virtual HRESULT __stdcall put_LoginTimeout (
  944.         long pTimeout ) = 0;
  945.     virtual HRESULT __stdcall get_DefaultCursorDriver (
  946.         long * pCursorType ) = 0;
  947.     virtual HRESULT __stdcall put_DefaultCursorDriver (
  948.         long pCursorType ) = 0;
  949.     virtual HRESULT __stdcall get_hEnv (
  950.         long * phEnv ) = 0;
  951.     virtual HRESULT __stdcall get_Type (
  952.         long * ptype ) = 0;
  953.     virtual HRESULT __stdcall get_Connections (
  954.         struct Connections * * ppcns ) = 0;
  955. };
  956.  
  957. struct __declspec(uuid("0000003b-0000-0010-8000-00aa006d2ea4"))
  958. Workspaces : _DynaCollection
  959. {
  960.     //
  961.     // Property data
  962.     //
  963.  
  964.     __declspec(property(get=GetItem))
  965.     WorkspacePtr Item[];
  966.  
  967.     //
  968.     // Wrapper methods for error-handling
  969.     //
  970.  
  971.     WorkspacePtr GetItem (
  972.         const _variant_t & Index );
  973.  
  974.     //
  975.     // Raw methods provided by interface
  976.     //
  977.  
  978.     virtual HRESULT __stdcall get_Item (
  979.         VARIANT Index,
  980.         struct Workspace * * ppwrk ) = 0;
  981. };
  982.  
  983. struct __declspec(uuid("00000049-0000-0010-8000-00aa006d2ea4"))
  984. _TableDef : _DAO
  985. {
  986.     //
  987.     // Property data
  988.     //
  989.  
  990.     __declspec(property(get=GetAttributes,put=PutAttributes))
  991.     long Attributes;
  992.     __declspec(property(get=GetFields))
  993.     FieldsPtr Fields;
  994.     __declspec(property(get=GetConnect,put=PutConnect))
  995.     _bstr_t Connect;
  996.     __declspec(property(get=GetDateCreated))
  997.     _variant_t DateCreated;
  998.     __declspec(property(get=GetLastUpdated))
  999.     _variant_t LastUpdated;
  1000.     __declspec(property(get=GetName,put=PutName))
  1001.     _bstr_t Name;
  1002.     __declspec(property(get=GetSourceTableName,put=PutSourceTableName))
  1003.     _bstr_t SourceTableName;
  1004.     __declspec(property(get=GetUpdatable))
  1005.     VARIANT_BOOL Updatable;
  1006.     __declspec(property(get=GetValidationText,put=PutValidationText))
  1007.     _bstr_t ValidationText;
  1008.     __declspec(property(get=GetValidationRule,put=PutValidationRule))
  1009.     _bstr_t ValidationRule;
  1010.     __declspec(property(get=GetRecordCount))
  1011.     long RecordCount;
  1012.     __declspec(property(get=GetIndexes))
  1013.     IndexesPtr Indexes;
  1014.     __declspec(property(get=GetConflictTable))
  1015.     _bstr_t ConflictTable;
  1016.     __declspec(property(get=GetReplicaFilter,put=PutReplicaFilter))
  1017.     _variant_t ReplicaFilter;
  1018.  
  1019.     //
  1020.     // Wrapper methods for error-handling
  1021.     //
  1022.  
  1023.     long GetAttributes ( );
  1024.     void PutAttributes (
  1025.         long pl );
  1026.     _bstr_t GetConnect ( );
  1027.     void PutConnect (
  1028.         _bstr_t pbstr );
  1029.     _variant_t GetDateCreated ( );
  1030.     _variant_t GetLastUpdated ( );
  1031.     _bstr_t GetName ( );
  1032.     void PutName (
  1033.         _bstr_t pbstr );
  1034.     _bstr_t GetSourceTableName ( );
  1035.     void PutSourceTableName (
  1036.         _bstr_t pbstr );
  1037.     VARIANT_BOOL GetUpdatable ( );
  1038.     _bstr_t GetValidationText ( );
  1039.     void PutValidationText (
  1040.         _bstr_t pbstr );
  1041.     _bstr_t GetValidationRule ( );
  1042.     void PutValidationRule (
  1043.         _bstr_t pbstr );
  1044.     long GetRecordCount ( );
  1045.     FieldsPtr GetFields ( );
  1046.     IndexesPtr GetIndexes ( );
  1047.     RecordsetPtr OpenRecordset (
  1048.         const _variant_t & Type = vtMissing,
  1049.         const _variant_t & Options = vtMissing );
  1050.     HRESULT RefreshLink ( );
  1051.     _FieldPtr CreateField (
  1052.         const _variant_t & Name = vtMissing,
  1053.         const _variant_t & Type = vtMissing,
  1054.         const _variant_t & Size = vtMissing );
  1055.     _IndexPtr CreateIndex (
  1056.         const _variant_t & Name = vtMissing );
  1057.     PropertyPtr CreateProperty (
  1058.         const _variant_t & Name = vtMissing,
  1059.         const _variant_t & Type = vtMissing,
  1060.         const _variant_t & Value = vtMissing,
  1061.         const _variant_t & DDL = vtMissing );
  1062.     _bstr_t GetConflictTable ( );
  1063.     _variant_t GetReplicaFilter ( );
  1064.     void PutReplicaFilter (
  1065.         const _variant_t & pFilter );
  1066.  
  1067.     //
  1068.     // Raw methods provided by interface
  1069.     //
  1070.  
  1071.     virtual HRESULT __stdcall get_Attributes (
  1072.         long * pl ) = 0;
  1073.     virtual HRESULT __stdcall put_Attributes (
  1074.         long pl ) = 0;
  1075.     virtual HRESULT __stdcall get_Connect (
  1076.         BSTR * pbstr ) = 0;
  1077.     virtual HRESULT __stdcall put_Connect (
  1078.         BSTR pbstr ) = 0;
  1079.     virtual HRESULT __stdcall get_DateCreated (
  1080.         VARIANT * pvar ) = 0;
  1081.     virtual HRESULT __stdcall get_LastUpdated (
  1082.         VARIANT * pvar ) = 0;
  1083.     virtual HRESULT __stdcall get_Name (
  1084.         BSTR * pbstr ) = 0;
  1085.     virtual HRESULT __stdcall put_Name (
  1086.         BSTR pbstr ) = 0;
  1087.     virtual HRESULT __stdcall get_SourceTableName (
  1088.         BSTR * pbstr ) = 0;
  1089.     virtual HRESULT __stdcall put_SourceTableName (
  1090.         BSTR pbstr ) = 0;
  1091.     virtual HRESULT __stdcall get_Updatable (
  1092.         VARIANT_BOOL * pb ) = 0;
  1093.     virtual HRESULT __stdcall get_ValidationText (
  1094.         BSTR * pbstr ) = 0;
  1095.     virtual HRESULT __stdcall put_ValidationText (
  1096.         BSTR pbstr ) = 0;
  1097.     virtual HRESULT __stdcall get_ValidationRule (
  1098.         BSTR * pbstr ) = 0;
  1099.     virtual HRESULT __stdcall put_ValidationRule (
  1100.         BSTR pbstr ) = 0;
  1101.     virtual HRESULT __stdcall get_RecordCount (
  1102.         long * pl ) = 0;
  1103.     virtual HRESULT __stdcall get_Fields (
  1104.         struct Fields * * ppflds ) = 0;
  1105.     virtual HRESULT __stdcall get_Indexes (
  1106.         struct Indexes * * ppidxs ) = 0;
  1107.     virtual HRESULT __stdcall raw_OpenRecordset (
  1108.         VARIANT Type,
  1109.         VARIANT Options,
  1110.         struct Recordset * * pprst ) = 0;
  1111.     virtual HRESULT __stdcall raw_RefreshLink ( ) = 0;
  1112.     virtual HRESULT __stdcall raw_CreateField (
  1113.         VARIANT Name,
  1114.         VARIANT Type,
  1115.         VARIANT Size,
  1116.         struct _Field * * ppfld ) = 0;
  1117.     virtual HRESULT __stdcall raw_CreateIndex (
  1118.         VARIANT Name,
  1119.         struct _Index * * ppidx ) = 0;
  1120.     virtual HRESULT __stdcall raw_CreateProperty (
  1121.         VARIANT Name,
  1122.         VARIANT Type,
  1123.         VARIANT Value,
  1124.         VARIANT DDL,
  1125.         struct Property * * pprp ) = 0;
  1126.     virtual HRESULT __stdcall get_ConflictTable (
  1127.         BSTR * pbstr ) = 0;
  1128.     virtual HRESULT __stdcall get_ReplicaFilter (
  1129.         VARIANT * pFilter ) = 0;
  1130.     virtual HRESULT __stdcall put_ReplicaFilter (
  1131.         VARIANT pFilter ) = 0;
  1132. };
  1133.  
  1134. struct __declspec(uuid("0000004b-0000-0010-8000-00aa006d2ea4"))
  1135. TableDefs : _DynaCollection
  1136. {
  1137.     //
  1138.     // Property data
  1139.     //
  1140.  
  1141.     __declspec(property(get=GetItem))
  1142.     _TableDefPtr Item[];
  1143.  
  1144.     //
  1145.     // Wrapper methods for error-handling
  1146.     //
  1147.  
  1148.     _TableDefPtr GetItem (
  1149.         const _variant_t & Index );
  1150.  
  1151.     //
  1152.     // Raw methods provided by interface
  1153.     //
  1154.  
  1155.     virtual HRESULT __stdcall get_Item (
  1156.         VARIANT Index,
  1157.         struct _TableDef * * pptdf ) = 0;
  1158. };
  1159.  
  1160. struct __declspec(uuid("00000013-0000-0010-8000-00aa006d2ea4"))
  1161. TableDef;
  1162.     // [ default ] interface _TableDef
  1163.  
  1164. struct __declspec(uuid("00000071-0000-0010-8000-00aa006d2ea4"))
  1165. Database : _DAO
  1166. {
  1167.     //
  1168.     // Property data
  1169.     //
  1170.  
  1171.     __declspec(property(get=GetCollatingOrder))
  1172.     long CollatingOrder;
  1173.     __declspec(property(get=GetConnect,put=PutConnect))
  1174.     _bstr_t Connect;
  1175.     __declspec(property(get=GetName))
  1176.     _bstr_t Name;
  1177.     __declspec(property(get=GetQueryTimeout,put=PutQueryTimeout))
  1178.     short QueryTimeout;
  1179.     __declspec(property(get=GetTableDefs))
  1180.     TableDefsPtr TableDefs;
  1181.     __declspec(property(get=GetTransactions))
  1182.     VARIANT_BOOL Transactions;
  1183.     __declspec(property(get=GetUpdatable))
  1184.     VARIANT_BOOL Updatable;
  1185.     __declspec(property(get=GetVersion))
  1186.     _bstr_t Version;
  1187.     __declspec(property(get=GetRecordsAffected))
  1188.     long RecordsAffected;
  1189.     __declspec(property(get=GetReplicaID))
  1190.     _bstr_t ReplicaID;
  1191.     __declspec(property(get=GetQueryDefs))
  1192.     QueryDefsPtr QueryDefs;
  1193.     __declspec(property(get=GetRelations))
  1194.     RelationsPtr Relations;
  1195.     __declspec(property(get=GetContainers))
  1196.     ContainersPtr Containers;
  1197.     __declspec(property(get=GetRecordsets))
  1198.     RecordsetsPtr Recordsets;
  1199.     __declspec(property(get=GetDesignMasterID,put=PutDesignMasterID))
  1200.     _bstr_t DesignMasterID;
  1201.     __declspec(property(get=GetConnection))
  1202.     ConnectionPtr Connection;
  1203.  
  1204.     //
  1205.     // Wrapper methods for error-handling
  1206.     //
  1207.  
  1208.     long GetCollatingOrder ( );
  1209.     _bstr_t GetConnect ( );
  1210.     _bstr_t GetName ( );
  1211.     short GetQueryTimeout ( );
  1212.     void PutQueryTimeout (
  1213.         short ps );
  1214.     VARIANT_BOOL GetTransactions ( );
  1215.     VARIANT_BOOL GetUpdatable ( );
  1216.     _bstr_t GetVersion ( );
  1217.     long GetRecordsAffected ( );
  1218.     TableDefsPtr GetTableDefs ( );
  1219.     QueryDefsPtr GetQueryDefs ( );
  1220.     RelationsPtr GetRelations ( );
  1221.     ContainersPtr GetContainers ( );
  1222.     RecordsetsPtr GetRecordsets ( );
  1223.     HRESULT Close ( );
  1224.     HRESULT Execute (
  1225.         _bstr_t Query,
  1226.         const _variant_t & Options = vtMissing );
  1227.     RecordsetPtr _30_OpenRecordset (
  1228.         _bstr_t Name,
  1229.         const _variant_t & Type = vtMissing,
  1230.         const _variant_t & Options = vtMissing );
  1231.     PropertyPtr CreateProperty (
  1232.         const _variant_t & Name = vtMissing,
  1233.         const _variant_t & Type = vtMissing,
  1234.         const _variant_t & Value = vtMissing,
  1235.         const _variant_t & DDL = vtMissing );
  1236.     _RelationPtr CreateRelation (
  1237.         const _variant_t & Name = vtMissing,
  1238.         const _variant_t & Table = vtMissing,
  1239.         const _variant_t & ForeignTable = vtMissing,
  1240.         const _variant_t & Attributes = vtMissing );
  1241.     _TableDefPtr CreateTableDef (
  1242.         const _variant_t & Name = vtMissing,
  1243.         const _variant_t & Attributes = vtMissing,
  1244.         const _variant_t & SourceTableName = vtMissing,
  1245.         const _variant_t & Connect = vtMissing );
  1246.     HRESULT BeginTrans ( );
  1247.     HRESULT CommitTrans (
  1248.         long Options );
  1249.     HRESULT Rollback ( );
  1250.     RecordsetPtr CreateDynaset (
  1251.         _bstr_t Name,
  1252.         const _variant_t & Options = vtMissing,
  1253.         const _variant_t & Inconsistent = vtMissing );
  1254.     _QueryDefPtr CreateQueryDef (
  1255.         const _variant_t & Name = vtMissing,
  1256.         const _variant_t & SQLText = vtMissing );
  1257.     RecordsetPtr CreateSnapshot (
  1258.         _bstr_t Source,
  1259.         const _variant_t & Options = vtMissing );
  1260.     HRESULT DeleteQueryDef (
  1261.         _bstr_t Name );
  1262.     long ExecuteSQL (
  1263.         _bstr_t SQL );
  1264.     RecordsetPtr ListFields (
  1265.         _bstr_t Name );
  1266.     RecordsetPtr ListTables ( );
  1267.     _QueryDefPtr OpenQueryDef (
  1268.         _bstr_t Name );
  1269.     RecordsetPtr OpenTable (
  1270.         _bstr_t Name,
  1271.         const _variant_t & Options = vtMissing );
  1272.     _bstr_t GetReplicaID ( );
  1273.     _bstr_t GetDesignMasterID ( );
  1274.     void PutDesignMasterID (
  1275.         _bstr_t pbstr );
  1276.     HRESULT Synchronize (
  1277.         _bstr_t DbPathName,
  1278.         const _variant_t & ExchangeType = vtMissing );
  1279.     HRESULT MakeReplica (
  1280.         _bstr_t PathName,
  1281.         _bstr_t Description,
  1282.         const _variant_t & Options = vtMissing );
  1283.     void PutConnect (
  1284.         _bstr_t pbstr );
  1285.     HRESULT NewPassword (
  1286.         _bstr_t bstrOld,
  1287.         _bstr_t bstrNew );
  1288.     RecordsetPtr OpenRecordset (
  1289.         _bstr_t Name,
  1290.         const _variant_t & Type = vtMissing,
  1291.         const _variant_t & Options = vtMissing,
  1292.         const _variant_t & LockEdit = vtMissing );
  1293.     ConnectionPtr GetConnection ( );
  1294.     HRESULT PopulatePartial (
  1295.         _bstr_t DbPathName );
  1296.  
  1297.     //
  1298.     // Raw methods provided by interface
  1299.     //
  1300.  
  1301.     virtual HRESULT __stdcall get_CollatingOrder (
  1302.         long * pl ) = 0;
  1303.     virtual HRESULT __stdcall get_Connect (
  1304.         BSTR * pbstr ) = 0;
  1305.     virtual HRESULT __stdcall get_Name (
  1306.         BSTR * pbstr ) = 0;
  1307.     virtual HRESULT __stdcall get_QueryTimeout (
  1308.         short * ps ) = 0;
  1309.     virtual HRESULT __stdcall put_QueryTimeout (
  1310.         short ps ) = 0;
  1311.     virtual HRESULT __stdcall get_Transactions (
  1312.         VARIANT_BOOL * pb ) = 0;
  1313.     virtual HRESULT __stdcall get_Updatable (
  1314.         VARIANT_BOOL * pb ) = 0;
  1315.     virtual HRESULT __stdcall get_Version (
  1316.         BSTR * pbstr ) = 0;
  1317.     virtual HRESULT __stdcall get_RecordsAffected (
  1318.         long * pl ) = 0;
  1319.     virtual HRESULT __stdcall get_TableDefs (
  1320.         struct TableDefs * * pptdfs ) = 0;
  1321.     virtual HRESULT __stdcall get_QueryDefs (
  1322.         struct QueryDefs * * ppqdfs ) = 0;
  1323.     virtual HRESULT __stdcall get_Relations (
  1324.         struct Relations * * pprls ) = 0;
  1325.     virtual HRESULT __stdcall get_Containers (
  1326.         struct Containers * * ppctns ) = 0;
  1327.     virtual HRESULT __stdcall get_Recordsets (
  1328.         struct Recordsets * * pprsts ) = 0;
  1329.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  1330.     virtual HRESULT __stdcall raw_Execute (
  1331.         BSTR Query,
  1332.         VARIANT Options = vtMissing ) = 0;
  1333.     virtual HRESULT __stdcall raw__30_OpenRecordset (
  1334.         BSTR Name,
  1335.         VARIANT Type,
  1336.         VARIANT Options,
  1337.         struct Recordset * * pprst ) = 0;
  1338.     virtual HRESULT __stdcall raw_CreateProperty (
  1339.         VARIANT Name,
  1340.         VARIANT Type,
  1341.         VARIANT Value,
  1342.         VARIANT DDL,
  1343.         struct Property * * pprp ) = 0;
  1344.     virtual HRESULT __stdcall raw_CreateRelation (
  1345.         VARIANT Name,
  1346.         VARIANT Table,
  1347.         VARIANT ForeignTable,
  1348.         VARIANT Attributes,
  1349.         struct _Relation * * pprel ) = 0;
  1350.     virtual HRESULT __stdcall raw_CreateTableDef (
  1351.         VARIANT Name,
  1352.         VARIANT Attributes,
  1353.         VARIANT SourceTableName,
  1354.         VARIANT Connect,
  1355.         struct _TableDef * * pptdf ) = 0;
  1356.     virtual HRESULT __stdcall raw_BeginTrans ( ) = 0;
  1357.     virtual HRESULT __stdcall raw_CommitTrans (
  1358.         long Options ) = 0;
  1359.     virtual HRESULT __stdcall raw_Rollback ( ) = 0;
  1360.     virtual HRESULT __stdcall raw_CreateDynaset (
  1361.         BSTR Name,
  1362.         VARIANT Options,
  1363.         VARIANT Inconsistent,
  1364.         struct Recordset * * pprst ) = 0;
  1365.     virtual HRESULT __stdcall raw_CreateQueryDef (
  1366.         VARIANT Name,
  1367.         VARIANT SQLText,
  1368.         struct _QueryDef * * ppqdf ) = 0;
  1369.     virtual HRESULT __stdcall raw_CreateSnapshot (
  1370.         BSTR Source,
  1371.         VARIANT Options,
  1372.         struct Recordset * * pprst ) = 0;
  1373.     virtual HRESULT __stdcall raw_DeleteQueryDef (
  1374.         BSTR Name ) = 0;
  1375.     virtual HRESULT __stdcall raw_ExecuteSQL (
  1376.         BSTR SQL,
  1377.         long * pl ) = 0;
  1378.     virtual HRESULT __stdcall raw_ListFields (
  1379.         BSTR Name,
  1380.         struct Recordset * * pprst ) = 0;
  1381.     virtual HRESULT __stdcall raw_ListTables (
  1382.         struct Recordset * * pprst ) = 0;
  1383.     virtual HRESULT __stdcall raw_OpenQueryDef (
  1384.         BSTR Name,
  1385.         struct _QueryDef * * ppqdf ) = 0;
  1386.     virtual HRESULT __stdcall raw_OpenTable (
  1387.         BSTR Name,
  1388.         VARIANT Options,
  1389.         struct Recordset * * pprst ) = 0;
  1390.     virtual HRESULT __stdcall get_ReplicaID (
  1391.         BSTR * pbstr ) = 0;
  1392.     virtual HRESULT __stdcall get_DesignMasterID (
  1393.         BSTR * pbstr ) = 0;
  1394.     virtual HRESULT __stdcall put_DesignMasterID (
  1395.         BSTR pbstr ) = 0;
  1396.     virtual HRESULT __stdcall raw_Synchronize (
  1397.         BSTR DbPathName,
  1398.         VARIANT ExchangeType = vtMissing ) = 0;
  1399.     virtual HRESULT __stdcall raw_MakeReplica (
  1400.         BSTR PathName,
  1401.         BSTR Description,
  1402.         VARIANT Options = vtMissing ) = 0;
  1403.     virtual HRESULT __stdcall put_Connect (
  1404.         BSTR pbstr ) = 0;
  1405.     virtual HRESULT __stdcall raw_NewPassword (
  1406.         BSTR bstrOld,
  1407.         BSTR bstrNew ) = 0;
  1408.     virtual HRESULT __stdcall raw_OpenRecordset (
  1409.         BSTR Name,
  1410.         VARIANT Type,
  1411.         VARIANT Options,
  1412.         VARIANT LockEdit,
  1413.         struct Recordset * * pprst ) = 0;
  1414.     virtual HRESULT __stdcall get_Connection (
  1415.         struct Connection * * ppCn ) = 0;
  1416.     virtual HRESULT __stdcall raw_PopulatePartial (
  1417.         BSTR DbPathName ) = 0;
  1418. };
  1419.  
  1420. struct __declspec(uuid("00000073-0000-0010-8000-00aa006d2ea4"))
  1421. Databases : _Collection
  1422. {
  1423.     //
  1424.     // Property data
  1425.     //
  1426.  
  1427.     __declspec(property(get=GetItem))
  1428.     DatabasePtr Item[];
  1429.  
  1430.     //
  1431.     // Wrapper methods for error-handling
  1432.     //
  1433.  
  1434.     DatabasePtr GetItem (
  1435.         const _variant_t & Index );
  1436.  
  1437.     //
  1438.     // Raw methods provided by interface
  1439.     //
  1440.  
  1441.     virtual HRESULT __stdcall get_Item (
  1442.         VARIANT Index,
  1443.         struct Database * * ppdb ) = 0;
  1444. };
  1445.  
  1446. struct __declspec(uuid("00000079-0000-0010-8000-00aa006d2ea4"))
  1447. _QueryDef : _DAO
  1448. {
  1449.     //
  1450.     // Property data
  1451.     //
  1452.  
  1453.     __declspec(property(get=GetDateCreated))
  1454.     _variant_t DateCreated;
  1455.     __declspec(property(get=GetLastUpdated))
  1456.     _variant_t LastUpdated;
  1457.     __declspec(property(get=GetName,put=PutName))
  1458.     _bstr_t Name;
  1459.     __declspec(property(get=GetParameters))
  1460.     ParametersPtr Parameters;
  1461.     __declspec(property(get=GetODBCTimeout,put=PutODBCTimeout))
  1462.     short ODBCTimeout;
  1463.     __declspec(property(get=GetStillExecuting))
  1464.     VARIANT_BOOL StillExecuting;
  1465.     __declspec(property(get=GetType))
  1466.     short Type;
  1467.     __declspec(property(get=GetSQL,put=PutSQL))
  1468.     _bstr_t SQL;
  1469.     __declspec(property(get=GetCacheSize,put=PutCacheSize))
  1470.     long CacheSize;
  1471.     __declspec(property(get=GetUpdatable))
  1472.     VARIANT_BOOL Updatable;
  1473.     __declspec(property(get=GetConnect,put=PutConnect))
  1474.     _bstr_t Connect;
  1475.     __declspec(property(get=GetPrepare,put=PutPrepare))
  1476.     _variant_t Prepare;
  1477.     __declspec(property(get=GetReturnsRecords,put=PutReturnsRecords))
  1478.     VARIANT_BOOL ReturnsRecords;
  1479.     __declspec(property(get=GetRecordsAffected))
  1480.     long RecordsAffected;
  1481.     __declspec(property(get=GetFields))
  1482.     FieldsPtr Fields;
  1483.     __declspec(property(get=GethStmt))
  1484.     long hStmt;
  1485.     __declspec(property(get=GetMaxRecords,put=PutMaxRecords))
  1486.     long MaxRecords;
  1487.  
  1488.     //
  1489.     // Wrapper methods for error-handling
  1490.     //
  1491.  
  1492.     _variant_t GetDateCreated ( );
  1493.     _variant_t GetLastUpdated ( );
  1494.     _bstr_t GetName ( );
  1495.     void PutName (
  1496.         _bstr_t pbstr );
  1497.     short GetODBCTimeout ( );
  1498.     void PutODBCTimeout (
  1499.         short ps );
  1500.     short GetType ( );
  1501.     _bstr_t GetSQL ( );
  1502.     void PutSQL (
  1503.         _bstr_t pbstr );
  1504.     VARIANT_BOOL GetUpdatable ( );
  1505.     _bstr_t GetConnect ( );
  1506.     void PutConnect (
  1507.         _bstr_t pbstr );
  1508.     VARIANT_BOOL GetReturnsRecords ( );
  1509.     void PutReturnsRecords (
  1510.         VARIANT_BOOL pb );
  1511.     long GetRecordsAffected ( );
  1512.     FieldsPtr GetFields ( );
  1513.     ParametersPtr GetParameters ( );
  1514.     HRESULT Close ( );
  1515.     RecordsetPtr _30_OpenRecordset (
  1516.         const _variant_t & Type = vtMissing,
  1517.         const _variant_t & Options = vtMissing );
  1518.     RecordsetPtr _30__OpenRecordset (
  1519.         const _variant_t & Type = vtMissing,
  1520.         const _variant_t & Options = vtMissing );
  1521.     _QueryDefPtr _Copy ( );
  1522.     HRESULT Execute (
  1523.         const _variant_t & Options = vtMissing );
  1524.     HRESULT Compare (
  1525.         struct _QueryDef * pQdef,
  1526.         short * lps );
  1527.     RecordsetPtr CreateDynaset (
  1528.         const _variant_t & Options = vtMissing,
  1529.         const _variant_t & Inconsistent = vtMissing );
  1530.     RecordsetPtr CreateSnapshot (
  1531.         const _variant_t & Options = vtMissing );
  1532.     RecordsetPtr ListParameters ( );
  1533.     PropertyPtr CreateProperty (
  1534.         const _variant_t & Name = vtMissing,
  1535.         const _variant_t & Type = vtMissing,
  1536.         const _variant_t & Value = vtMissing,
  1537.         const _variant_t & DDL = vtMissing );
  1538.     RecordsetPtr OpenRecordset (
  1539.         const _variant_t & Type = vtMissing,
  1540.         const _variant_t & Options = vtMissing,
  1541.         const _variant_t & LockEdit = vtMissing );
  1542.     RecordsetPtr _OpenRecordset (
  1543.         const _variant_t & Type = vtMissing,
  1544.         const _variant_t & Options = vtMissing,
  1545.         const _variant_t & LockEdit = vtMissing );
  1546.     HRESULT Cancel ( );
  1547.     long GethStmt ( );
  1548.     long GetMaxRecords ( );
  1549.     void PutMaxRecords (
  1550.         long pMxRecs );
  1551.     VARIANT_BOOL GetStillExecuting ( );
  1552.     long GetCacheSize ( );
  1553.     void PutCacheSize (
  1554.         long lCacheSize );
  1555.     _variant_t GetPrepare ( );
  1556.     void PutPrepare (
  1557.         const _variant_t & pb );
  1558.  
  1559.     //
  1560.     // Raw methods provided by interface
  1561.     //
  1562.  
  1563.     virtual HRESULT __stdcall get_DateCreated (
  1564.         VARIANT * pvar ) = 0;
  1565.     virtual HRESULT __stdcall get_LastUpdated (
  1566.         VARIANT * pvar ) = 0;
  1567.     virtual HRESULT __stdcall get_Name (
  1568.         BSTR * pbstr ) = 0;
  1569.     virtual HRESULT __stdcall put_Name (
  1570.         BSTR pbstr ) = 0;
  1571.     virtual HRESULT __stdcall get_ODBCTimeout (
  1572.         short * ps ) = 0;
  1573.     virtual HRESULT __stdcall put_ODBCTimeout (
  1574.         short ps ) = 0;
  1575.     virtual HRESULT __stdcall get_Type (
  1576.         short * pi ) = 0;
  1577.     virtual HRESULT __stdcall get_SQL (
  1578.         BSTR * pbstr ) = 0;
  1579.     virtual HRESULT __stdcall put_SQL (
  1580.         BSTR pbstr ) = 0;
  1581.     virtual HRESULT __stdcall get_Updatable (
  1582.         VARIANT_BOOL * pb ) = 0;
  1583.     virtual HRESULT __stdcall get_Connect (
  1584.         BSTR * pbstr ) = 0;
  1585.     virtual HRESULT __stdcall put_Connect (
  1586.         BSTR pbstr ) = 0;
  1587.     virtual HRESULT __stdcall get_ReturnsRecords (
  1588.         VARIANT_BOOL * pb ) = 0;
  1589.     virtual HRESULT __stdcall put_ReturnsRecords (
  1590.         VARIANT_BOOL pb ) = 0;
  1591.     virtual HRESULT __stdcall get_RecordsAffected (
  1592.         long * pl ) = 0;
  1593.     virtual HRESULT __stdcall get_Fields (
  1594.         struct Fields * * ppflds ) = 0;
  1595.     virtual HRESULT __stdcall get_Parameters (
  1596.         struct Parameters * * ppprms ) = 0;
  1597.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  1598.     virtual HRESULT __stdcall raw__30_OpenRecordset (
  1599.         VARIANT Type,
  1600.         VARIANT Options,
  1601.         struct Recordset * * pprst ) = 0;
  1602.     virtual HRESULT __stdcall raw__30__OpenRecordset (
  1603.         VARIANT Type,
  1604.         VARIANT Options,
  1605.         struct Recordset * * pprst ) = 0;
  1606.     virtual HRESULT __stdcall raw__Copy (
  1607.         struct _QueryDef * * ppqdf ) = 0;
  1608.     virtual HRESULT __stdcall raw_Execute (
  1609.         VARIANT Options = vtMissing ) = 0;
  1610.     virtual HRESULT __stdcall raw_Compare (
  1611.         struct _QueryDef * pQdef,
  1612.         short * lps ) = 0;
  1613.     virtual HRESULT __stdcall raw_CreateDynaset (
  1614.         VARIANT Options,
  1615.         VARIANT Inconsistent,
  1616.         struct Recordset * * pprst ) = 0;
  1617.     virtual HRESULT __stdcall raw_CreateSnapshot (
  1618.         VARIANT Options,
  1619.         struct Recordset * * pprst ) = 0;
  1620.     virtual HRESULT __stdcall raw_ListParameters (
  1621.         struct Recordset * * pprst ) = 0;
  1622.     virtual HRESULT __stdcall raw_CreateProperty (
  1623.         VARIANT Name,
  1624.         VARIANT Type,
  1625.         VARIANT Value,
  1626.         VARIANT DDL,
  1627.         struct Property * * pprp ) = 0;
  1628.     virtual HRESULT __stdcall raw_OpenRecordset (
  1629.         VARIANT Type,
  1630.         VARIANT Options,
  1631.         VARIANT LockEdit,
  1632.         struct Recordset * * pprst ) = 0;
  1633.     virtual HRESULT __stdcall raw__OpenRecordset (
  1634.         VARIANT Type,
  1635.         VARIANT Options,
  1636.         VARIANT LockEdit,
  1637.         struct Recordset * * pprst ) = 0;
  1638.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  1639.     virtual HRESULT __stdcall get_hStmt (
  1640.         long * phStmt ) = 0;
  1641.     virtual HRESULT __stdcall get_MaxRecords (
  1642.         long * pMxRecs ) = 0;
  1643.     virtual HRESULT __stdcall put_MaxRecords (
  1644.         long pMxRecs ) = 0;
  1645.     virtual HRESULT __stdcall get_StillExecuting (
  1646.         VARIANT_BOOL * pStillExec ) = 0;
  1647.     virtual HRESULT __stdcall get_CacheSize (
  1648.         long * lCacheSize ) = 0;
  1649.     virtual HRESULT __stdcall put_CacheSize (
  1650.         long lCacheSize ) = 0;
  1651.     virtual HRESULT __stdcall get_Prepare (
  1652.         VARIANT * pb ) = 0;
  1653.     virtual HRESULT __stdcall put_Prepare (
  1654.         VARIANT pb ) = 0;
  1655. };
  1656.  
  1657. struct __declspec(uuid("0000007b-0000-0010-8000-00aa006d2ea4"))
  1658. QueryDefs : _DynaCollection
  1659. {
  1660.     //
  1661.     // Property data
  1662.     //
  1663.  
  1664.     __declspec(property(get=GetItem))
  1665.     _QueryDefPtr Item[];
  1666.  
  1667.     //
  1668.     // Wrapper methods for error-handling
  1669.     //
  1670.  
  1671.     _QueryDefPtr GetItem (
  1672.         const _variant_t & Index );
  1673.  
  1674.     //
  1675.     // Raw methods provided by interface
  1676.     //
  1677.  
  1678.     virtual HRESULT __stdcall get_Item (
  1679.         VARIANT Index,
  1680.         struct _QueryDef * * ppqdef ) = 0;
  1681. };
  1682.  
  1683. struct __declspec(uuid("00000018-0000-0010-8000-00aa006d2ea4"))
  1684. QueryDef;
  1685.     // [ default ] interface _QueryDef
  1686.  
  1687. struct __declspec(uuid("00000031-0000-0010-8000-00aa006d2ea4"))
  1688. Recordset : _DAO
  1689. {
  1690.     //
  1691.     // Property data
  1692.     //
  1693.  
  1694.     __declspec(property(get=GetFields))
  1695.     FieldsPtr Fields;
  1696.     __declspec(property(get=GetValidationRule))
  1697.     _bstr_t ValidationRule;
  1698.     __declspec(property(get=GetCacheSize,put=PutCacheSize))
  1699.     long CacheSize;
  1700.     __declspec(property(get=GetPercentPosition,put=PutPercentPosition))
  1701.     float PercentPosition;
  1702.     __declspec(property(get=GetAbsolutePosition,put=PutAbsolutePosition))
  1703.     long AbsolutePosition;
  1704.     __declspec(property(get=GetEditMode))
  1705.     short EditMode;
  1706.     __declspec(property(get=GetODBCFetchCount))
  1707.     long ODBCFetchCount;
  1708.     __declspec(property(get=GetODBCFetchDelay))
  1709.     long ODBCFetchDelay;
  1710.     __declspec(property(get=GetParent))
  1711.     DatabasePtr Parent;
  1712.     __declspec(property(get=GetIndexes))
  1713.     IndexesPtr Indexes;
  1714.     __declspec(property(get=GetCollect,put=PutCollect))
  1715.     _variant_t Collect[];
  1716.     __declspec(property(get=GetBatchSize,put=PutBatchSize))
  1717.     long BatchSize;
  1718.     __declspec(property(get=GetBatchCollisionCount))
  1719.     long BatchCollisionCount;
  1720.     __declspec(property(get=GetBatchCollisions))
  1721.     _variant_t BatchCollisions;
  1722.     __declspec(property(get=GetConnection,put=PutRefConnection))
  1723.     ConnectionPtr Connection;
  1724.     __declspec(property(get=GetRecordStatus))
  1725.     short RecordStatus;
  1726.     __declspec(property(get=GetUpdateOptions,put=PutUpdateOptions))
  1727.     long UpdateOptions;
  1728.     __declspec(property(get=GethStmt))
  1729.     long hStmt;
  1730.     __declspec(property(get=GetStillExecuting))
  1731.     VARIANT_BOOL StillExecuting;
  1732.     __declspec(property(get=GetBOF))
  1733.     VARIANT_BOOL BOF;
  1734.     __declspec(property(get=GetBookmarkable))
  1735.     VARIANT_BOOL Bookmarkable;
  1736.     __declspec(property(get=GetDateCreated))
  1737.     _variant_t DateCreated;
  1738.     __declspec(property(get=GetEOF))
  1739.     VARIANT_BOOL EOF;
  1740.     __declspec(property(get=GetFilter,put=PutFilter))
  1741.     _bstr_t Filter;
  1742.     __declspec(property(get=GetIndex,put=PutIndex))
  1743.     _bstr_t Index;
  1744.     __declspec(property(get=GetLastModified))
  1745.     SAFEARRAY * LastModified;
  1746.     __declspec(property(get=GetLastUpdated))
  1747.     _variant_t LastUpdated;
  1748.     __declspec(property(get=GetLockEdits,put=PutLockEdits))
  1749.     VARIANT_BOOL LockEdits;
  1750.     __declspec(property(get=GetName))
  1751.     _bstr_t Name;
  1752.     __declspec(property(get=GetNoMatch))
  1753.     VARIANT_BOOL NoMatch;
  1754.     __declspec(property(get=GetSort,put=PutSort))
  1755.     _bstr_t Sort;
  1756.     __declspec(property(get=GetTransactions))
  1757.     VARIANT_BOOL Transactions;
  1758.     __declspec(property(get=GetType))
  1759.     short Type;
  1760.     __declspec(property(get=GetRecordCount))
  1761.     long RecordCount;
  1762.     __declspec(property(get=GetUpdatable))
  1763.     VARIANT_BOOL Updatable;
  1764.     __declspec(property(get=GetRestartable))
  1765.     VARIANT_BOOL Restartable;
  1766.     __declspec(property(get=GetValidationText))
  1767.     _bstr_t ValidationText;
  1768.  
  1769.     //
  1770.     // Wrapper methods for error-handling
  1771.     //
  1772.  
  1773.     VARIANT_BOOL GetBOF ( );
  1774.     SAFEARRAY * GetBookmark ( );
  1775.     void PutBookmark (
  1776.         SAFEARRAY * * ppsach );
  1777.     VARIANT_BOOL GetBookmarkable ( );
  1778.     _variant_t GetDateCreated ( );
  1779.     VARIANT_BOOL GetEOF ( );
  1780.     _bstr_t GetFilter ( );
  1781.     void PutFilter (
  1782.         _bstr_t pbstr );
  1783.     _bstr_t GetIndex ( );
  1784.     void PutIndex (
  1785.         _bstr_t pbstr );
  1786.     SAFEARRAY * GetLastModified ( );
  1787.     _variant_t GetLastUpdated ( );
  1788.     VARIANT_BOOL GetLockEdits ( );
  1789.     void PutLockEdits (
  1790.         VARIANT_BOOL pb );
  1791.     _bstr_t GetName ( );
  1792.     VARIANT_BOOL GetNoMatch ( );
  1793.     _bstr_t GetSort ( );
  1794.     void PutSort (
  1795.         _bstr_t pbstr );
  1796.     VARIANT_BOOL GetTransactions ( );
  1797.     short GetType ( );
  1798.     long GetRecordCount ( );
  1799.     VARIANT_BOOL GetUpdatable ( );
  1800.     VARIANT_BOOL GetRestartable ( );
  1801.     _bstr_t GetValidationText ( );
  1802.     _bstr_t GetValidationRule ( );
  1803.     SAFEARRAY * GetCacheStart ( );
  1804.     void PutCacheStart (
  1805.         SAFEARRAY * * ppsa );
  1806.     long GetCacheSize ( );
  1807.     void PutCacheSize (
  1808.         long pl );
  1809.     float GetPercentPosition ( );
  1810.     void PutPercentPosition (
  1811.         float pd );
  1812.     long GetAbsolutePosition ( );
  1813.     void PutAbsolutePosition (
  1814.         long pl );
  1815.     short GetEditMode ( );
  1816.     long GetODBCFetchCount ( );
  1817.     long GetODBCFetchDelay ( );
  1818.     DatabasePtr GetParent ( );
  1819.     FieldsPtr GetFields ( );
  1820.     IndexesPtr GetIndexes ( );
  1821.     HRESULT _30_CancelUpdate ( );
  1822.     HRESULT AddNew ( );
  1823.     HRESULT Close ( );
  1824.     RecordsetPtr OpenRecordset (
  1825.         const _variant_t & Type = vtMissing,
  1826.         const _variant_t & Options = vtMissing );
  1827.     HRESULT Delete ( );
  1828.     HRESULT Edit ( );
  1829.     HRESULT FindFirst (
  1830.         _bstr_t Criteria );
  1831.     HRESULT FindLast (
  1832.         _bstr_t Criteria );
  1833.     HRESULT FindNext (
  1834.         _bstr_t Criteria );
  1835.     HRESULT FindPrevious (
  1836.         _bstr_t Criteria );
  1837.     HRESULT MoveFirst ( );
  1838.     HRESULT _30_MoveLast ( );
  1839.     HRESULT MoveNext ( );
  1840.     HRESULT MovePrevious ( );
  1841.     HRESULT Seek (
  1842.         _bstr_t Comparison,
  1843.         const _variant_t & Key1,
  1844.         const _variant_t & Key2 = vtMissing,
  1845.         const _variant_t & Key3 = vtMissing,
  1846.         const _variant_t & Key4 = vtMissing,
  1847.         const _variant_t & Key5 = vtMissing,
  1848.         const _variant_t & Key6 = vtMissing,
  1849.         const _variant_t & Key7 = vtMissing,
  1850.         const _variant_t & Key8 = vtMissing,
  1851.         const _variant_t & Key9 = vtMissing,
  1852.         const _variant_t & Key10 = vtMissing,
  1853.         const _variant_t & Key11 = vtMissing,
  1854.         const _variant_t & Key12 = vtMissing,
  1855.         const _variant_t & Key13 = vtMissing );
  1856.     HRESULT _30_Update ( );
  1857.     RecordsetPtr Clone ( );
  1858.     HRESULT Requery (
  1859.         const _variant_t & NewQueryDef = vtMissing );
  1860.     HRESULT Move (
  1861.         long Rows,
  1862.         const _variant_t & StartBookmark = vtMissing );
  1863.     HRESULT FillCache (
  1864.         const _variant_t & Rows = vtMissing,
  1865.         const _variant_t & StartBookmark = vtMissing );
  1866.     RecordsetPtr CreateDynaset (
  1867.         const _variant_t & Options = vtMissing,
  1868.         const _variant_t & Inconsistent = vtMissing );
  1869.     RecordsetPtr CreateSnapshot (
  1870.         const _variant_t & Options = vtMissing );
  1871.     _QueryDefPtr CopyQueryDef ( );
  1872.     RecordsetPtr ListFields ( );
  1873.     RecordsetPtr ListIndexes ( );
  1874.     _variant_t GetRows (
  1875.         const _variant_t & NumRows = vtMissing );
  1876.     _variant_t GetCollect (
  1877.         const _variant_t & Index );
  1878.     void PutCollect (
  1879.         const _variant_t & Index,
  1880.         const _variant_t & pvar );
  1881.     HRESULT Cancel ( );
  1882.     VARIANT_BOOL NextRecordset ( );
  1883.     long GethStmt ( );
  1884.     VARIANT_BOOL GetStillExecuting ( );
  1885.     long GetBatchSize ( );
  1886.     void PutBatchSize (
  1887.         long pl );
  1888.     long GetBatchCollisionCount ( );
  1889.     _variant_t GetBatchCollisions ( );
  1890.     ConnectionPtr GetConnection ( );
  1891.     void PutRefConnection (
  1892.         struct Connection * ppCn );
  1893.     short GetRecordStatus ( );
  1894.     long GetUpdateOptions ( );
  1895.     void PutUpdateOptions (
  1896.         long pl );
  1897.     HRESULT CancelUpdate (
  1898.         long UpdateType );
  1899.     HRESULT Update (
  1900.         long UpdateType,
  1901.         VARIANT_BOOL Force );
  1902.     HRESULT MoveLast (
  1903.         long Options );
  1904.  
  1905.     //
  1906.     // Raw methods provided by interface
  1907.     //
  1908.  
  1909.     virtual HRESULT __stdcall get_BOF (
  1910.         VARIANT_BOOL * pb ) = 0;
  1911.     virtual HRESULT __stdcall get_Bookmark (
  1912.         SAFEARRAY * * ppsach ) = 0;
  1913.     virtual HRESULT __stdcall put_Bookmark (
  1914.         SAFEARRAY * * ppsach ) = 0;
  1915.     virtual HRESULT __stdcall get_Bookmarkable (
  1916.         VARIANT_BOOL * pb ) = 0;
  1917.     virtual HRESULT __stdcall get_DateCreated (
  1918.         VARIANT * pvar ) = 0;
  1919.     virtual HRESULT __stdcall get_EOF (
  1920.         VARIANT_BOOL * pb ) = 0;
  1921.     virtual HRESULT __stdcall get_Filter (
  1922.         BSTR * pbstr ) = 0;
  1923.     virtual HRESULT __stdcall put_Filter (
  1924.         BSTR pbstr ) = 0;
  1925.     virtual HRESULT __stdcall get_Index (
  1926.         BSTR * pbstr ) = 0;
  1927.     virtual HRESULT __stdcall put_Index (
  1928.         BSTR pbstr ) = 0;
  1929.     virtual HRESULT __stdcall get_LastModified (
  1930.         SAFEARRAY * * ppsa ) = 0;
  1931.     virtual HRESULT __stdcall get_LastUpdated (
  1932.         VARIANT * pvar ) = 0;
  1933.     virtual HRESULT __stdcall get_LockEdits (
  1934.         VARIANT_BOOL * pb ) = 0;
  1935.     virtual HRESULT __stdcall put_LockEdits (
  1936.         VARIANT_BOOL pb ) = 0;
  1937.     virtual HRESULT __stdcall get_Name (
  1938.         BSTR * pbstr ) = 0;
  1939.     virtual HRESULT __stdcall get_NoMatch (
  1940.         VARIANT_BOOL * pb ) = 0;
  1941.     virtual HRESULT __stdcall get_Sort (
  1942.         BSTR * pbstr ) = 0;
  1943.     virtual HRESULT __stdcall put_Sort (
  1944.         BSTR pbstr ) = 0;
  1945.     virtual HRESULT __stdcall get_Transactions (
  1946.         VARIANT_BOOL * pb ) = 0;
  1947.     virtual HRESULT __stdcall get_Type (
  1948.         short * ps ) = 0;
  1949.     virtual HRESULT __stdcall get_RecordCount (
  1950.         long * pl ) = 0;
  1951.     virtual HRESULT __stdcall get_Updatable (
  1952.         VARIANT_BOOL * pb ) = 0;
  1953.     virtual HRESULT __stdcall get_Restartable (
  1954.         VARIANT_BOOL * pb ) = 0;
  1955.     virtual HRESULT __stdcall get_ValidationText (
  1956.         BSTR * pbstr ) = 0;
  1957.     virtual HRESULT __stdcall get_ValidationRule (
  1958.         BSTR * pbstr ) = 0;
  1959.     virtual HRESULT __stdcall get_CacheStart (
  1960.         SAFEARRAY * * ppsa ) = 0;
  1961.     virtual HRESULT __stdcall put_CacheStart (
  1962.         SAFEARRAY * * ppsa ) = 0;
  1963.     virtual HRESULT __stdcall get_CacheSize (
  1964.         long * pl ) = 0;
  1965.     virtual HRESULT __stdcall put_CacheSize (
  1966.         long pl ) = 0;
  1967.     virtual HRESULT __stdcall get_PercentPosition (
  1968.         float * pd ) = 0;
  1969.     virtual HRESULT __stdcall put_PercentPosition (
  1970.         float pd ) = 0;
  1971.     virtual HRESULT __stdcall get_AbsolutePosition (
  1972.         long * pl ) = 0;
  1973.     virtual HRESULT __stdcall put_AbsolutePosition (
  1974.         long pl ) = 0;
  1975.     virtual HRESULT __stdcall get_EditMode (
  1976.         short * pi ) = 0;
  1977.     virtual HRESULT __stdcall get_ODBCFetchCount (
  1978.         long * pl ) = 0;
  1979.     virtual HRESULT __stdcall get_ODBCFetchDelay (
  1980.         long * pl ) = 0;
  1981.     virtual HRESULT __stdcall get_Parent (
  1982.         struct Database * * pdb ) = 0;
  1983.     virtual HRESULT __stdcall get_Fields (
  1984.         struct Fields * * ppflds ) = 0;
  1985.     virtual HRESULT __stdcall get_Indexes (
  1986.         struct Indexes * * ppidxs ) = 0;
  1987.     virtual HRESULT __stdcall raw__30_CancelUpdate ( ) = 0;
  1988.     virtual HRESULT __stdcall raw_AddNew ( ) = 0;
  1989.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  1990.     virtual HRESULT __stdcall raw_OpenRecordset (
  1991.         VARIANT Type,
  1992.         VARIANT Options,
  1993.         struct Recordset * * pprst ) = 0;
  1994.     virtual HRESULT __stdcall raw_Delete ( ) = 0;
  1995.     virtual HRESULT __stdcall raw_Edit ( ) = 0;
  1996.     virtual HRESULT __stdcall raw_FindFirst (
  1997.         BSTR Criteria ) = 0;
  1998.     virtual HRESULT __stdcall raw_FindLast (
  1999.         BSTR Criteria ) = 0;
  2000.     virtual HRESULT __stdcall raw_FindNext (
  2001.         BSTR Criteria ) = 0;
  2002.     virtual HRESULT __stdcall raw_FindPrevious (
  2003.         BSTR Criteria ) = 0;
  2004.     virtual HRESULT __stdcall raw_MoveFirst ( ) = 0;
  2005.     virtual HRESULT __stdcall raw__30_MoveLast ( ) = 0;
  2006.     virtual HRESULT __stdcall raw_MoveNext ( ) = 0;
  2007.     virtual HRESULT __stdcall raw_MovePrevious ( ) = 0;
  2008.     virtual HRESULT __stdcall raw_Seek (
  2009.         BSTR Comparison,
  2010.         VARIANT Key1,
  2011.         VARIANT Key2 = vtMissing,
  2012.         VARIANT Key3 = vtMissing,
  2013.         VARIANT Key4 = vtMissing,
  2014.         VARIANT Key5 = vtMissing,
  2015.         VARIANT Key6 = vtMissing,
  2016.         VARIANT Key7 = vtMissing,
  2017.         VARIANT Key8 = vtMissing,
  2018.         VARIANT Key9 = vtMissing,
  2019.         VARIANT Key10 = vtMissing,
  2020.         VARIANT Key11 = vtMissing,
  2021.         VARIANT Key12 = vtMissing,
  2022.         VARIANT Key13 = vtMissing ) = 0;
  2023.     virtual HRESULT __stdcall raw__30_Update ( ) = 0;
  2024.     virtual HRESULT __stdcall raw_Clone (
  2025.         struct Recordset * * pprst ) = 0;
  2026.     virtual HRESULT __stdcall raw_Requery (
  2027.         VARIANT NewQueryDef = vtMissing ) = 0;
  2028.     virtual HRESULT __stdcall raw_Move (
  2029.         long Rows,
  2030.         VARIANT StartBookmark = vtMissing ) = 0;
  2031.     virtual HRESULT __stdcall raw_FillCache (
  2032.         VARIANT Rows = vtMissing,
  2033.         VARIANT StartBookmark = vtMissing ) = 0;
  2034.     virtual HRESULT __stdcall raw_CreateDynaset (
  2035.         VARIANT Options,
  2036.         VARIANT Inconsistent,
  2037.         struct Recordset * * pprst ) = 0;
  2038.     virtual HRESULT __stdcall raw_CreateSnapshot (
  2039.         VARIANT Options,
  2040.         struct Recordset * * pprst ) = 0;
  2041.     virtual HRESULT __stdcall raw_CopyQueryDef (
  2042.         struct _QueryDef * * ppqdf ) = 0;
  2043.     virtual HRESULT __stdcall raw_ListFields (
  2044.         struct Recordset * * pprst ) = 0;
  2045.     virtual HRESULT __stdcall raw_ListIndexes (
  2046.         struct Recordset * * pprst ) = 0;
  2047.     virtual HRESULT __stdcall raw_GetRows (
  2048.         VARIANT NumRows,
  2049.         VARIANT * pvar ) = 0;
  2050.     virtual HRESULT __stdcall get_Collect (
  2051.         VARIANT Index,
  2052.         VARIANT * pvar ) = 0;
  2053.     virtual HRESULT __stdcall put_Collect (
  2054.         VARIANT Index,
  2055.         VARIANT pvar ) = 0;
  2056.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  2057.     virtual HRESULT __stdcall raw_NextRecordset (
  2058.         VARIANT_BOOL * pb ) = 0;
  2059.     virtual HRESULT __stdcall get_hStmt (
  2060.         long * phStmt ) = 0;
  2061.     virtual HRESULT __stdcall get_StillExecuting (
  2062.         VARIANT_BOOL * pStillExec ) = 0;
  2063.     virtual HRESULT __stdcall get_BatchSize (
  2064.         long * pl ) = 0;
  2065.     virtual HRESULT __stdcall put_BatchSize (
  2066.         long pl ) = 0;
  2067.     virtual HRESULT __stdcall get_BatchCollisionCount (
  2068.         long * pl ) = 0;
  2069.     virtual HRESULT __stdcall get_BatchCollisions (
  2070.         VARIANT * pvar ) = 0;
  2071.     virtual HRESULT __stdcall get_Connection (
  2072.         struct Connection * * ppCn ) = 0;
  2073.     virtual HRESULT __stdcall putref_Connection (
  2074.         struct Connection * ppCn ) = 0;
  2075.     virtual HRESULT __stdcall get_RecordStatus (
  2076.         short * pi ) = 0;
  2077.     virtual HRESULT __stdcall get_UpdateOptions (
  2078.         long * pl ) = 0;
  2079.     virtual HRESULT __stdcall put_UpdateOptions (
  2080.         long pl ) = 0;
  2081.     virtual HRESULT __stdcall raw_CancelUpdate (
  2082.         long UpdateType ) = 0;
  2083.     virtual HRESULT __stdcall raw_Update (
  2084.         long UpdateType,
  2085.         VARIANT_BOOL Force ) = 0;
  2086.     virtual HRESULT __stdcall raw_MoveLast (
  2087.         long Options ) = 0;
  2088. };
  2089.  
  2090. struct __declspec(uuid("00000033-0000-0010-8000-00aa006d2ea4"))
  2091. Recordsets : _Collection
  2092. {
  2093.     //
  2094.     // Property data
  2095.     //
  2096.  
  2097.     __declspec(property(get=GetItem))
  2098.     RecordsetPtr Item[];
  2099.  
  2100.     //
  2101.     // Wrapper methods for error-handling
  2102.     //
  2103.  
  2104.     RecordsetPtr GetItem (
  2105.         const _variant_t & Index );
  2106.  
  2107.     //
  2108.     // Raw methods provided by interface
  2109.     //
  2110.  
  2111.     virtual HRESULT __stdcall get_Item (
  2112.         VARIANT Index,
  2113.         struct Recordset * * pprst ) = 0;
  2114. };
  2115.  
  2116. struct __declspec(uuid("00000051-0000-0010-8000-00aa006d2ea4"))
  2117. _Field : _DAO
  2118. {
  2119.     //
  2120.     // Property data
  2121.     //
  2122.  
  2123.     __declspec(property(get=GetCollatingOrder))
  2124.     long CollatingOrder;
  2125.     __declspec(property(get=GetType,put=PutType))
  2126.     short Type;
  2127.     __declspec(property(get=GetValue,put=PutValue))
  2128.     _variant_t Value;
  2129.     __declspec(property(get=GetName,put=PutName))
  2130.     _bstr_t Name;
  2131.     __declspec(property(get=GetCollectionIndex))
  2132.     short CollectionIndex;
  2133.     __declspec(property(get=GetSize,put=PutSize))
  2134.     long Size;
  2135.     __declspec(property(get=GetOriginalValue))
  2136.     _variant_t OriginalValue;
  2137.     __declspec(property(get=GetSourceField))
  2138.     _bstr_t SourceField;
  2139.     __declspec(property(get=GetSourceTable))
  2140.     _bstr_t SourceTable;
  2141.     __declspec(property(get=GetVisibleValue))
  2142.     _variant_t VisibleValue;
  2143.     __declspec(property(get=GetFieldSize))
  2144.     long FieldSize;
  2145.     __declspec(property(get=GetAttributes,put=PutAttributes))
  2146.     long Attributes;
  2147.     __declspec(property(get=GetOrdinalPosition,put=PutOrdinalPosition))
  2148.     short OrdinalPosition;
  2149.     __declspec(property(get=GetValidationText,put=PutValidationText))
  2150.     _bstr_t ValidationText;
  2151.     __declspec(property(get=GetValidateOnSet,put=PutValidateOnSet))
  2152.     VARIANT_BOOL ValidateOnSet;
  2153.     __declspec(property(get=GetValidationRule,put=PutValidationRule))
  2154.     _bstr_t ValidationRule;
  2155.     __declspec(property(get=GetDefaultValue,put=PutDefaultValue))
  2156.     _variant_t DefaultValue;
  2157.     __declspec(property(get=GetRequired,put=PutRequired))
  2158.     VARIANT_BOOL Required;
  2159.     __declspec(property(get=GetAllowZeroLength,put=PutAllowZeroLength))
  2160.     VARIANT_BOOL AllowZeroLength;
  2161.     __declspec(property(get=GetDataUpdatable))
  2162.     VARIANT_BOOL DataUpdatable;
  2163.     __declspec(property(get=GetForeignName,put=PutForeignName))
  2164.     _bstr_t ForeignName;
  2165.  
  2166.     //
  2167.     // Wrapper methods for error-handling
  2168.     //
  2169.  
  2170.     long GetCollatingOrder ( );
  2171.     short GetType ( );
  2172.     void PutType (
  2173.         short ps );
  2174.     _bstr_t GetName ( );
  2175.     void PutName (
  2176.         _bstr_t pbstr );
  2177.     long GetSize ( );
  2178.     void PutSize (
  2179.         long pl );
  2180.     _bstr_t GetSourceField ( );
  2181.     _bstr_t GetSourceTable ( );
  2182.     _variant_t GetValue ( );
  2183.     void PutValue (
  2184.         const _variant_t & pvar );
  2185.     long GetAttributes ( );
  2186.     void PutAttributes (
  2187.         long pl );
  2188.     short GetOrdinalPosition ( );
  2189.     void PutOrdinalPosition (
  2190.         short ps );
  2191.     _bstr_t GetValidationText ( );
  2192.     void PutValidationText (
  2193.         _bstr_t pbstr );
  2194.     VARIANT_BOOL GetValidateOnSet ( );
  2195.     void PutValidateOnSet (
  2196.         VARIANT_BOOL pb );
  2197.     _bstr_t GetValidationRule ( );
  2198.     void PutValidationRule (
  2199.         _bstr_t pbstr );
  2200.     _variant_t GetDefaultValue ( );
  2201.     void PutDefaultValue (
  2202.         const _variant_t & pvar );
  2203.     VARIANT_BOOL GetRequired ( );
  2204.     void PutRequired (
  2205.         VARIANT_BOOL pb );
  2206.     VARIANT_BOOL GetAllowZeroLength ( );
  2207.     void PutAllowZeroLength (
  2208.         VARIANT_BOOL pb );
  2209.     VARIANT_BOOL GetDataUpdatable ( );
  2210.     _bstr_t GetForeignName ( );
  2211.     void PutForeignName (
  2212.         _bstr_t pbstr );
  2213.     HRESULT AppendChunk (
  2214.         const _variant_t & Val );
  2215.     _variant_t GetChunk (
  2216.         long Offset,
  2217.         long Bytes );
  2218.     long _30_FieldSize ( );
  2219.     PropertyPtr CreateProperty (
  2220.         const _variant_t & Name = vtMissing,
  2221.         const _variant_t & Type = vtMissing,
  2222.         const _variant_t & Value = vtMissing,
  2223.         const _variant_t & DDL = vtMissing );
  2224.     short GetCollectionIndex ( );
  2225.     _variant_t GetOriginalValue ( );
  2226.     _variant_t GetVisibleValue ( );
  2227.     long GetFieldSize ( );
  2228.  
  2229.     //
  2230.     // Raw methods provided by interface
  2231.     //
  2232.  
  2233.     virtual HRESULT __stdcall get_CollatingOrder (
  2234.         long * pl ) = 0;
  2235.     virtual HRESULT __stdcall get_Type (
  2236.         short * ps ) = 0;
  2237.     virtual HRESULT __stdcall put_Type (
  2238.         short ps ) = 0;
  2239.     virtual HRESULT __stdcall get_Name (
  2240.         BSTR * pbstr ) = 0;
  2241.     virtual HRESULT __stdcall put_Name (
  2242.         BSTR pbstr ) = 0;
  2243.     virtual HRESULT __stdcall get_Size (
  2244.         long * pl ) = 0;
  2245.     virtual HRESULT __stdcall put_Size (
  2246.         long pl ) = 0;
  2247.     virtual HRESULT __stdcall get_SourceField (
  2248.         BSTR * pbstr ) = 0;
  2249.     virtual HRESULT __stdcall get_SourceTable (
  2250.         BSTR * pbstr ) = 0;
  2251.     virtual HRESULT __stdcall get_Value (
  2252.         VARIANT * pvar ) = 0;
  2253.     virtual HRESULT __stdcall put_Value (
  2254.         VARIANT pvar ) = 0;
  2255.     virtual HRESULT __stdcall get_Attributes (
  2256.         long * pl ) = 0;
  2257.     virtual HRESULT __stdcall put_Attributes (
  2258.         long pl ) = 0;
  2259.     virtual HRESULT __stdcall get_OrdinalPosition (
  2260.         short * ps ) = 0;
  2261.     virtual HRESULT __stdcall put_OrdinalPosition (
  2262.         short ps ) = 0;
  2263.     virtual HRESULT __stdcall get_ValidationText (
  2264.         BSTR * pbstr ) = 0;
  2265.     virtual HRESULT __stdcall put_ValidationText (
  2266.         BSTR pbstr ) = 0;
  2267.     virtual HRESULT __stdcall get_ValidateOnSet (
  2268.         VARIANT_BOOL * pb ) = 0;
  2269.     virtual HRESULT __stdcall put_ValidateOnSet (
  2270.         VARIANT_BOOL pb ) = 0;
  2271.     virtual HRESULT __stdcall get_ValidationRule (
  2272.         BSTR * pbstr ) = 0;
  2273.     virtual HRESULT __stdcall put_ValidationRule (
  2274.         BSTR pbstr ) = 0;
  2275.     virtual HRESULT __stdcall get_DefaultValue (
  2276.         VARIANT * pvar ) = 0;
  2277.     virtual HRESULT __stdcall put_DefaultValue (
  2278.         VARIANT pvar ) = 0;
  2279.     virtual HRESULT __stdcall get_Required (
  2280.         VARIANT_BOOL * pb ) = 0;
  2281.     virtual HRESULT __stdcall put_Required (
  2282.         VARIANT_BOOL pb ) = 0;
  2283.     virtual HRESULT __stdcall get_AllowZeroLength (
  2284.         VARIANT_BOOL * pb ) = 0;
  2285.     virtual HRESULT __stdcall put_AllowZeroLength (
  2286.         VARIANT_BOOL pb ) = 0;
  2287.     virtual HRESULT __stdcall get_DataUpdatable (
  2288.         VARIANT_BOOL * pb ) = 0;
  2289.     virtual HRESULT __stdcall get_ForeignName (
  2290.         BSTR * pbstr ) = 0;
  2291.     virtual HRESULT __stdcall put_ForeignName (
  2292.         BSTR pbstr ) = 0;
  2293.     virtual HRESULT __stdcall raw_AppendChunk (
  2294.         VARIANT Val ) = 0;
  2295.     virtual HRESULT __stdcall raw_GetChunk (
  2296.         long Offset,
  2297.         long Bytes,
  2298.         VARIANT * pvar ) = 0;
  2299.     virtual HRESULT __stdcall raw__30_FieldSize (
  2300.         long * pl ) = 0;
  2301.     virtual HRESULT __stdcall raw_CreateProperty (
  2302.         VARIANT Name,
  2303.         VARIANT Type,
  2304.         VARIANT Value,
  2305.         VARIANT DDL,
  2306.         struct Property * * pprp ) = 0;
  2307.     virtual HRESULT __stdcall get_CollectionIndex (
  2308.         short * i ) = 0;
  2309.     virtual HRESULT __stdcall get_OriginalValue (
  2310.         VARIANT * pvar ) = 0;
  2311.     virtual HRESULT __stdcall get_VisibleValue (
  2312.         VARIANT * pvar ) = 0;
  2313.     virtual HRESULT __stdcall get_FieldSize (
  2314.         long * pl ) = 0;
  2315. };
  2316.  
  2317. struct __declspec(uuid("00000014-0000-0010-8000-00aa006d2ea4"))
  2318. Field;
  2319.     // [ default ] interface _Field
  2320.  
  2321. struct __declspec(uuid("00000053-0000-0010-8000-00aa006d2ea4"))
  2322. Fields : _DynaCollection
  2323. {
  2324.     //
  2325.     // Property data
  2326.     //
  2327.  
  2328.     __declspec(property(get=GetItem))
  2329.     _FieldPtr Item[];
  2330.  
  2331.     //
  2332.     // Wrapper methods for error-handling
  2333.     //
  2334.  
  2335.     _FieldPtr GetItem (
  2336.         const _variant_t & Index );
  2337.  
  2338.     //
  2339.     // Raw methods provided by interface
  2340.     //
  2341.  
  2342.     virtual HRESULT __stdcall get_Item (
  2343.         VARIANT Index,
  2344.         struct _Field * * ppfld ) = 0;
  2345. };
  2346.  
  2347. struct __declspec(uuid("00000059-0000-0010-8000-00aa006d2ea4"))
  2348. _Index : _DAO
  2349. {
  2350.     //
  2351.     // Property data
  2352.     //
  2353.  
  2354.     __declspec(property(get=GetName,put=PutName))
  2355.     _bstr_t Name;
  2356.     __declspec(property(get=GetForeign))
  2357.     VARIANT_BOOL Foreign;
  2358.     __declspec(property(get=GetUnique,put=PutUnique))
  2359.     VARIANT_BOOL Unique;
  2360.     __declspec(property(get=GetClustered,put=PutClustered))
  2361.     VARIANT_BOOL Clustered;
  2362.     __declspec(property(get=GetRequired,put=PutRequired))
  2363.     VARIANT_BOOL Required;
  2364.     __declspec(property(get=GetIgnoreNulls,put=PutIgnoreNulls))
  2365.     VARIANT_BOOL IgnoreNulls;
  2366.     __declspec(property(get=GetPrimary,put=PutPrimary))
  2367.     VARIANT_BOOL Primary;
  2368.     __declspec(property(get=GetDistinctCount))
  2369.     long DistinctCount;
  2370.     __declspec(property(get=GetFields,put=PutFields))
  2371.     _variant_t Fields;
  2372.  
  2373.     //
  2374.     // Wrapper methods for error-handling
  2375.     //
  2376.  
  2377.     _bstr_t GetName ( );
  2378.     void PutName (
  2379.         _bstr_t pbstr );
  2380.     VARIANT_BOOL GetForeign ( );
  2381.     VARIANT_BOOL GetUnique ( );
  2382.     void PutUnique (
  2383.         VARIANT_BOOL pb );
  2384.     VARIANT_BOOL GetClustered ( );
  2385.     void PutClustered (
  2386.         VARIANT_BOOL pb );
  2387.     VARIANT_BOOL GetRequired ( );
  2388.     void PutRequired (
  2389.         VARIANT_BOOL pb );
  2390.     VARIANT_BOOL GetIgnoreNulls ( );
  2391.     void PutIgnoreNulls (
  2392.         VARIANT_BOOL pb );
  2393.     VARIANT_BOOL GetPrimary ( );
  2394.     void PutPrimary (
  2395.         VARIANT_BOOL pb );
  2396.     long GetDistinctCount ( );
  2397.     _variant_t GetFields ( );
  2398.     void PutFields (
  2399.         const _variant_t & pv );
  2400.     _FieldPtr CreateField (
  2401.         const _variant_t & Name = vtMissing,
  2402.         const _variant_t & Type = vtMissing,
  2403.         const _variant_t & Size = vtMissing );
  2404.     PropertyPtr CreateProperty (
  2405.         const _variant_t & Name = vtMissing,
  2406.         const _variant_t & Type = vtMissing,
  2407.         const _variant_t & Value = vtMissing,
  2408.         const _variant_t & DDL = vtMissing );
  2409.  
  2410.     //
  2411.     // Raw methods provided by interface
  2412.     //
  2413.  
  2414.     virtual HRESULT __stdcall get_Name (
  2415.         BSTR * pbstr ) = 0;
  2416.     virtual HRESULT __stdcall put_Name (
  2417.         BSTR pbstr ) = 0;
  2418.     virtual HRESULT __stdcall get_Foreign (
  2419.         VARIANT_BOOL * pb ) = 0;
  2420.     virtual HRESULT __stdcall get_Unique (
  2421.         VARIANT_BOOL * pb ) = 0;
  2422.     virtual HRESULT __stdcall put_Unique (
  2423.         VARIANT_BOOL pb ) = 0;
  2424.     virtual HRESULT __stdcall get_Clustered (
  2425.         VARIANT_BOOL * pb ) = 0;
  2426.     virtual HRESULT __stdcall put_Clustered (
  2427.         VARIANT_BOOL pb ) = 0;
  2428.     virtual HRESULT __stdcall get_Required (
  2429.         VARIANT_BOOL * pb ) = 0;
  2430.     virtual HRESULT __stdcall put_Required (
  2431.         VARIANT_BOOL pb ) = 0;
  2432.     virtual HRESULT __stdcall get_IgnoreNulls (
  2433.         VARIANT_BOOL * pb ) = 0;
  2434.     virtual HRESULT __stdcall put_IgnoreNulls (
  2435.         VARIANT_BOOL pb ) = 0;
  2436.     virtual HRESULT __stdcall get_Primary (
  2437.         VARIANT_BOOL * pb ) = 0;
  2438.     virtual HRESULT __stdcall put_Primary (
  2439.         VARIANT_BOOL pb ) = 0;
  2440.     virtual HRESULT __stdcall get_DistinctCount (
  2441.         long * pl ) = 0;
  2442.     virtual HRESULT __stdcall get_Fields (
  2443.         VARIANT * pv ) = 0;
  2444.     virtual HRESULT __stdcall put_Fields (
  2445.         VARIANT pv ) = 0;
  2446.     virtual HRESULT __stdcall raw_CreateField (
  2447.         VARIANT Name,
  2448.         VARIANT Type,
  2449.         VARIANT Size,
  2450.         struct _Field * * ppfld ) = 0;
  2451.     virtual HRESULT __stdcall raw_CreateProperty (
  2452.         VARIANT Name,
  2453.         VARIANT Type,
  2454.         VARIANT Value,
  2455.         VARIANT DDL,
  2456.         struct Property * * pprp ) = 0;
  2457. };
  2458.  
  2459. struct __declspec(uuid("00000015-0000-0010-8000-00aa006d2ea4"))
  2460. Index;
  2461.     // [ default ] interface _Index
  2462.  
  2463. struct __declspec(uuid("0000005b-0000-0010-8000-00aa006d2ea4"))
  2464. Indexes : _DynaCollection
  2465. {
  2466.     //
  2467.     // Property data
  2468.     //
  2469.  
  2470.     __declspec(property(get=GetItem))
  2471.     _IndexPtr Item[];
  2472.  
  2473.     //
  2474.     // Wrapper methods for error-handling
  2475.     //
  2476.  
  2477.     _IndexPtr GetItem (
  2478.         const _variant_t & Index );
  2479.  
  2480.     //
  2481.     // Raw methods provided by interface
  2482.     //
  2483.  
  2484.     virtual HRESULT __stdcall get_Item (
  2485.         VARIANT Index,
  2486.         struct _Index * * ppidx ) = 0;
  2487. };
  2488.  
  2489. struct __declspec(uuid("0000005d-0000-0010-8000-00aa006d2ea4"))
  2490. IndexFields : _DynaCollection
  2491. {
  2492.     //
  2493.     // Property data
  2494.     //
  2495.  
  2496.     __declspec(property(get=GetItem))
  2497.     _variant_t Item[];
  2498.  
  2499.     //
  2500.     // Wrapper methods for error-handling
  2501.     //
  2502.  
  2503.     _variant_t GetItem (
  2504.         const _variant_t & Index = vtMissing );
  2505.  
  2506.     //
  2507.     // Raw methods provided by interface
  2508.     //
  2509.  
  2510.     virtual HRESULT __stdcall get_Item (
  2511.         VARIANT Index,
  2512.         VARIANT * pvar ) = 0;
  2513. };
  2514.  
  2515. struct __declspec(uuid("00000081-0000-0010-8000-00aa006d2ea4"))
  2516. Parameter : _DAO
  2517. {
  2518.     //
  2519.     // Property data
  2520.     //
  2521.  
  2522.     __declspec(property(get=GetName))
  2523.     _bstr_t Name;
  2524.     __declspec(property(get=GetValue,put=PutValue))
  2525.     _variant_t Value;
  2526.     __declspec(property(get=GetType,put=PutType))
  2527.     short Type;
  2528.     __declspec(property(get=GetDirection,put=PutDirection))
  2529.     short Direction;
  2530.  
  2531.     //
  2532.     // Wrapper methods for error-handling
  2533.     //
  2534.  
  2535.     _bstr_t GetName ( );
  2536.     _variant_t GetValue ( );
  2537.     void PutValue (
  2538.         const _variant_t & pvar );
  2539.     short GetType ( );
  2540.     void PutType (
  2541.         short ps );
  2542.     short GetDirection ( );
  2543.     void PutDirection (
  2544.         short pOption );
  2545.  
  2546.     //
  2547.     // Raw methods provided by interface
  2548.     //
  2549.  
  2550.     virtual HRESULT __stdcall get_Name (
  2551.         BSTR * pbstr ) = 0;
  2552.     virtual HRESULT __stdcall get_Value (
  2553.         VARIANT * pvar ) = 0;
  2554.     virtual HRESULT __stdcall put_Value (
  2555.         VARIANT pvar ) = 0;
  2556.     virtual HRESULT __stdcall get_Type (
  2557.         short * ps ) = 0;
  2558.     virtual HRESULT __stdcall put_Type (
  2559.         short ps ) = 0;
  2560.     virtual HRESULT __stdcall get_Direction (
  2561.         short * pOption ) = 0;
  2562.     virtual HRESULT __stdcall put_Direction (
  2563.         short pOption ) = 0;
  2564. };
  2565.  
  2566. struct __declspec(uuid("00000083-0000-0010-8000-00aa006d2ea4"))
  2567. Parameters : _Collection
  2568. {
  2569.     //
  2570.     // Property data
  2571.     //
  2572.  
  2573.     __declspec(property(get=GetItem))
  2574.     ParameterPtr Item[];
  2575.  
  2576.     //
  2577.     // Wrapper methods for error-handling
  2578.     //
  2579.  
  2580.     ParameterPtr GetItem (
  2581.         const _variant_t & Index );
  2582.  
  2583.     //
  2584.     // Raw methods provided by interface
  2585.     //
  2586.  
  2587.     virtual HRESULT __stdcall get_Item (
  2588.         VARIANT Index,
  2589.         struct Parameter * * ppprm ) = 0;
  2590. };
  2591.  
  2592. struct __declspec(uuid("00000069-0000-0010-8000-00aa006d2ea4"))
  2593. _User : _DAO
  2594. {
  2595.     //
  2596.     // Property data
  2597.     //
  2598.  
  2599.     __declspec(property(get=GetName,put=PutName))
  2600.     _bstr_t Name;
  2601.     __declspec(property(get=GetGroups))
  2602.     GroupsPtr Groups;
  2603.     __declspec(property(put=PutPID))
  2604.     _bstr_t PID;
  2605.     __declspec(property(put=PutPassword))
  2606.     _bstr_t Password;
  2607.  
  2608.     //
  2609.     // Wrapper methods for error-handling
  2610.     //
  2611.  
  2612.     _bstr_t GetName ( );
  2613.     void PutName (
  2614.         _bstr_t pbstr );
  2615.     void PutPID (
  2616.         _bstr_t _arg1 );
  2617.     void PutPassword (
  2618.         _bstr_t _arg1 );
  2619.     GroupsPtr GetGroups ( );
  2620.     HRESULT NewPassword (
  2621.         _bstr_t bstrOld,
  2622.         _bstr_t bstrNew );
  2623.     _GroupPtr CreateGroup (
  2624.         const _variant_t & Name = vtMissing,
  2625.         const _variant_t & PID = vtMissing );
  2626.  
  2627.     //
  2628.     // Raw methods provided by interface
  2629.     //
  2630.  
  2631.     virtual HRESULT __stdcall get_Name (
  2632.         BSTR * pbstr ) = 0;
  2633.     virtual HRESULT __stdcall put_Name (
  2634.         BSTR pbstr ) = 0;
  2635.     virtual HRESULT __stdcall put_PID (
  2636.         BSTR _arg1 ) = 0;
  2637.     virtual HRESULT __stdcall put_Password (
  2638.         BSTR _arg1 ) = 0;
  2639.     virtual HRESULT __stdcall get_Groups (
  2640.         struct Groups * * ppgrps ) = 0;
  2641.     virtual HRESULT __stdcall raw_NewPassword (
  2642.         BSTR bstrOld,
  2643.         BSTR bstrNew ) = 0;
  2644.     virtual HRESULT __stdcall raw_CreateGroup (
  2645.         VARIANT Name,
  2646.         VARIANT PID,
  2647.         struct _Group * * ppgrp ) = 0;
  2648. };
  2649.  
  2650. struct __declspec(uuid("00000017-0000-0010-8000-00aa006d2ea4"))
  2651. User;
  2652.     // [ default ] interface _User
  2653.  
  2654. struct __declspec(uuid("0000006b-0000-0010-8000-00aa006d2ea4"))
  2655. Users : _DynaCollection
  2656. {
  2657.     //
  2658.     // Property data
  2659.     //
  2660.  
  2661.     __declspec(property(get=GetItem))
  2662.     _UserPtr Item[];
  2663.  
  2664.     //
  2665.     // Wrapper methods for error-handling
  2666.     //
  2667.  
  2668.     _UserPtr GetItem (
  2669.         const _variant_t & Index );
  2670.  
  2671.     //
  2672.     // Raw methods provided by interface
  2673.     //
  2674.  
  2675.     virtual HRESULT __stdcall get_Item (
  2676.         VARIANT Index,
  2677.         struct _User * * ppusr ) = 0;
  2678. };
  2679.  
  2680. struct __declspec(uuid("00000061-0000-0010-8000-00aa006d2ea4"))
  2681. _Group : _DAO
  2682. {
  2683.     //
  2684.     // Property data
  2685.     //
  2686.  
  2687.     __declspec(property(get=GetName,put=PutName))
  2688.     _bstr_t Name;
  2689.     __declspec(property(get=GetUsers))
  2690.     UsersPtr Users;
  2691.     __declspec(property(put=PutPID))
  2692.     _bstr_t PID;
  2693.  
  2694.     //
  2695.     // Wrapper methods for error-handling
  2696.     //
  2697.  
  2698.     _bstr_t GetName ( );
  2699.     void PutName (
  2700.         _bstr_t pbstr );
  2701.     void PutPID (
  2702.         _bstr_t _arg1 );
  2703.     UsersPtr GetUsers ( );
  2704.     _UserPtr CreateUser (
  2705.         const _variant_t & Name = vtMissing,
  2706.         const _variant_t & PID = vtMissing,
  2707.         const _variant_t & Password = vtMissing );
  2708.  
  2709.     //
  2710.     // Raw methods provided by interface
  2711.     //
  2712.  
  2713.     virtual HRESULT __stdcall get_Name (
  2714.         BSTR * pbstr ) = 0;
  2715.     virtual HRESULT __stdcall put_Name (
  2716.         BSTR pbstr ) = 0;
  2717.     virtual HRESULT __stdcall put_PID (
  2718.         BSTR _arg1 ) = 0;
  2719.     virtual HRESULT __stdcall get_Users (
  2720.         struct Users * * ppusrs ) = 0;
  2721.     virtual HRESULT __stdcall raw_CreateUser (
  2722.         VARIANT Name,
  2723.         VARIANT PID,
  2724.         VARIANT Password,
  2725.         struct _User * * ppusr ) = 0;
  2726. };
  2727.  
  2728. struct __declspec(uuid("00000016-0000-0010-8000-00aa006d2ea4"))
  2729. Group;
  2730.     // [ default ] interface _Group
  2731.  
  2732. struct __declspec(uuid("00000063-0000-0010-8000-00aa006d2ea4"))
  2733. Groups : _DynaCollection
  2734. {
  2735.     //
  2736.     // Property data
  2737.     //
  2738.  
  2739.     __declspec(property(get=GetItem))
  2740.     _GroupPtr Item[];
  2741.  
  2742.     //
  2743.     // Wrapper methods for error-handling
  2744.     //
  2745.  
  2746.     _GroupPtr GetItem (
  2747.         const _variant_t & Index );
  2748.  
  2749.     //
  2750.     // Raw methods provided by interface
  2751.     //
  2752.  
  2753.     virtual HRESULT __stdcall get_Item (
  2754.         VARIANT Index,
  2755.         struct _Group * * ppgrp ) = 0;
  2756. };
  2757.  
  2758. struct __declspec(uuid("00000089-0000-0010-8000-00aa006d2ea4"))
  2759. _Relation : _DAO
  2760. {
  2761.     //
  2762.     // Property data
  2763.     //
  2764.  
  2765.     __declspec(property(get=GetName,put=PutName))
  2766.     _bstr_t Name;
  2767.     __declspec(property(get=GetFields))
  2768.     FieldsPtr Fields;
  2769.     __declspec(property(get=GetTable,put=PutTable))
  2770.     _bstr_t Table;
  2771.     __declspec(property(get=GetForeignTable,put=PutForeignTable))
  2772.     _bstr_t ForeignTable;
  2773.     __declspec(property(get=GetAttributes,put=PutAttributes))
  2774.     long Attributes;
  2775.     __declspec(property(get=GetPartialReplica,put=PutPartialReplica))
  2776.     VARIANT_BOOL PartialReplica;
  2777.  
  2778.     //
  2779.     // Wrapper methods for error-handling
  2780.     //
  2781.  
  2782.     _bstr_t GetName ( );
  2783.     void PutName (
  2784.         _bstr_t pbstr );
  2785.     _bstr_t GetTable ( );
  2786.     void PutTable (
  2787.         _bstr_t pbstr );
  2788.     _bstr_t GetForeignTable ( );
  2789.     void PutForeignTable (
  2790.         _bstr_t pbstr );
  2791.     long GetAttributes ( );
  2792.     void PutAttributes (
  2793.         long pl );
  2794.     FieldsPtr GetFields ( );
  2795.     _FieldPtr CreateField (
  2796.         const _variant_t & Name = vtMissing,
  2797.         const _variant_t & Type = vtMissing,
  2798.         const _variant_t & Size = vtMissing );
  2799.     VARIANT_BOOL GetPartialReplica ( );
  2800.     void PutPartialReplica (
  2801.         VARIANT_BOOL pfPartialReplica );
  2802.  
  2803.     //
  2804.     // Raw methods provided by interface
  2805.     //
  2806.  
  2807.     virtual HRESULT __stdcall get_Name (
  2808.         BSTR * pbstr ) = 0;
  2809.     virtual HRESULT __stdcall put_Name (
  2810.         BSTR pbstr ) = 0;
  2811.     virtual HRESULT __stdcall get_Table (
  2812.         BSTR * pbstr ) = 0;
  2813.     virtual HRESULT __stdcall put_Table (
  2814.         BSTR pbstr ) = 0;
  2815.     virtual HRESULT __stdcall get_ForeignTable (
  2816.         BSTR * pbstr ) = 0;
  2817.     virtual HRESULT __stdcall put_ForeignTable (
  2818.         BSTR pbstr ) = 0;
  2819.     virtual HRESULT __stdcall get_Attributes (
  2820.         long * pl ) = 0;
  2821.     virtual HRESULT __stdcall put_Attributes (
  2822.         long pl ) = 0;
  2823.     virtual HRESULT __stdcall get_Fields (
  2824.         struct Fields * * ppflds ) = 0;
  2825.     virtual HRESULT __stdcall raw_CreateField (
  2826.         VARIANT Name,
  2827.         VARIANT Type,
  2828.         VARIANT Size,
  2829.         struct _Field * * ppfld ) = 0;
  2830.     virtual HRESULT __stdcall get_PartialReplica (
  2831.         VARIANT_BOOL * pfPartialReplica ) = 0;
  2832.     virtual HRESULT __stdcall put_PartialReplica (
  2833.         VARIANT_BOOL pfPartialReplica ) = 0;
  2834. };
  2835.  
  2836. struct __declspec(uuid("00000019-0000-0010-8000-00aa006d2ea4"))
  2837. Relation;
  2838.     // [ default ] interface _Relation
  2839.  
  2840. struct __declspec(uuid("0000008b-0000-0010-8000-00aa006d2ea4"))
  2841. Relations : _DynaCollection
  2842. {
  2843.     //
  2844.     // Property data
  2845.     //
  2846.  
  2847.     __declspec(property(get=GetItem))
  2848.     _RelationPtr Item[];
  2849.  
  2850.     //
  2851.     // Wrapper methods for error-handling
  2852.     //
  2853.  
  2854.     _RelationPtr GetItem (
  2855.         const _variant_t & Index );
  2856.  
  2857.     //
  2858.     // Raw methods provided by interface
  2859.     //
  2860.  
  2861.     virtual HRESULT __stdcall get_Item (
  2862.         VARIANT Index,
  2863.         struct _Relation * * pprel ) = 0;
  2864. };
  2865.  
  2866. struct __declspec(uuid("00000027-0000-0010-8000-00aa006d2ea4"))
  2867. Property : _DAO
  2868. {
  2869.     //
  2870.     // Property data
  2871.     //
  2872.  
  2873.     __declspec(property(get=GetValue,put=PutValue))
  2874.     _variant_t Value;
  2875.     __declspec(property(get=GetName,put=PutName))
  2876.     _bstr_t Name;
  2877.     __declspec(property(get=GetType,put=PutType))
  2878.     short Type;
  2879.     __declspec(property(get=GetInherited))
  2880.     VARIANT_BOOL Inherited;
  2881.  
  2882.     //
  2883.     // Wrapper methods for error-handling
  2884.     //
  2885.  
  2886.     _variant_t GetValue ( );
  2887.     void PutValue (
  2888.         const _variant_t & pval );
  2889.     _bstr_t GetName ( );
  2890.     void PutName (
  2891.         _bstr_t pbstr );
  2892.     short GetType ( );
  2893.     void PutType (
  2894.         short ptype );
  2895.     VARIANT_BOOL GetInherited ( );
  2896.  
  2897.     //
  2898.     // Raw methods provided by interface
  2899.     //
  2900.  
  2901.     virtual HRESULT __stdcall get_Value (
  2902.         VARIANT * pval ) = 0;
  2903.     virtual HRESULT __stdcall put_Value (
  2904.         VARIANT pval ) = 0;
  2905.     virtual HRESULT __stdcall get_Name (
  2906.         BSTR * pbstr ) = 0;
  2907.     virtual HRESULT __stdcall put_Name (
  2908.         BSTR pbstr ) = 0;
  2909.     virtual HRESULT __stdcall get_Type (
  2910.         short * ptype ) = 0;
  2911.     virtual HRESULT __stdcall put_Type (
  2912.         short ptype ) = 0;
  2913.     virtual HRESULT __stdcall get_Inherited (
  2914.         VARIANT_BOOL * pb ) = 0;
  2915. };
  2916.  
  2917. struct __declspec(uuid("00000029-0000-0010-8000-00aa006d2ea4"))
  2918. Properties : _DynaCollection
  2919. {
  2920.     //
  2921.     // Property data
  2922.     //
  2923.  
  2924.     __declspec(property(get=GetItem))
  2925.     PropertyPtr Item[];
  2926.  
  2927.     //
  2928.     // Wrapper methods for error-handling
  2929.     //
  2930.  
  2931.     PropertyPtr GetItem (
  2932.         const _variant_t & Index );
  2933.  
  2934.     //
  2935.     // Raw methods provided by interface
  2936.     //
  2937.  
  2938.     virtual HRESULT __stdcall get_Item (
  2939.         VARIANT Index,
  2940.         struct Property * * ppprop ) = 0;
  2941. };
  2942.  
  2943. struct __declspec(uuid("00000091-0000-0010-8000-00aa006d2ea4"))
  2944. Container : _DAO
  2945. {
  2946.     //
  2947.     // Property data
  2948.     //
  2949.  
  2950.     __declspec(property(get=GetName))
  2951.     _bstr_t Name;
  2952.     __declspec(property(get=GetOwner,put=PutOwner))
  2953.     _bstr_t Owner;
  2954.     __declspec(property(get=GetDocuments))
  2955.     DocumentsPtr Documents;
  2956.     __declspec(property(get=GetUserName,put=PutUserName))
  2957.     _bstr_t UserName;
  2958.     __declspec(property(get=GetPermissions,put=PutPermissions))
  2959.     long Permissions;
  2960.     __declspec(property(get=GetInherit,put=PutInherit))
  2961.     VARIANT_BOOL Inherit;
  2962.     __declspec(property(get=GetAllPermissions))
  2963.     long AllPermissions;
  2964.  
  2965.     //
  2966.     // Wrapper methods for error-handling
  2967.     //
  2968.  
  2969.     _bstr_t GetName ( );
  2970.     _bstr_t GetOwner ( );
  2971.     void PutOwner (
  2972.         _bstr_t pbstr );
  2973.     _bstr_t GetUserName ( );
  2974.     void PutUserName (
  2975.         _bstr_t pbstr );
  2976.     long GetPermissions ( );
  2977.     void PutPermissions (
  2978.         long pl );
  2979.     VARIANT_BOOL GetInherit ( );
  2980.     void PutInherit (
  2981.         VARIANT_BOOL pb );
  2982.     DocumentsPtr GetDocuments ( );
  2983.     long GetAllPermissions ( );
  2984.  
  2985.     //
  2986.     // Raw methods provided by interface
  2987.     //
  2988.  
  2989.     virtual HRESULT __stdcall get_Name (
  2990.         BSTR * pbstr ) = 0;
  2991.     virtual HRESULT __stdcall get_Owner (
  2992.         BSTR * pbstr ) = 0;
  2993.     virtual HRESULT __stdcall put_Owner (
  2994.         BSTR pbstr ) = 0;
  2995.     virtual HRESULT __stdcall get_UserName (
  2996.         BSTR * pbstr ) = 0;
  2997.     virtual HRESULT __stdcall put_UserName (
  2998.         BSTR pbstr ) = 0;
  2999.     virtual HRESULT __stdcall get_Permissions (
  3000.         long * pl ) = 0;
  3001.     virtual HRESULT __stdcall put_Permissions (
  3002.         long pl ) = 0;
  3003.     virtual HRESULT __stdcall get_Inherit (
  3004.         VARIANT_BOOL * pb ) = 0;
  3005.     virtual HRESULT __stdcall put_Inherit (
  3006.         VARIANT_BOOL pb ) = 0;
  3007.     virtual HRESULT __stdcall get_Documents (
  3008.         struct Documents * * ppdocs ) = 0;
  3009.     virtual HRESULT __stdcall get_AllPermissions (
  3010.         long * pl ) = 0;
  3011. };
  3012.  
  3013. struct __declspec(uuid("00000093-0000-0010-8000-00aa006d2ea4"))
  3014. Containers : _Collection
  3015. {
  3016.     //
  3017.     // Property data
  3018.     //
  3019.  
  3020.     __declspec(property(get=GetItem))
  3021.     ContainerPtr Item[];
  3022.  
  3023.     //
  3024.     // Wrapper methods for error-handling
  3025.     //
  3026.  
  3027.     ContainerPtr GetItem (
  3028.         const _variant_t & Index );
  3029.  
  3030.     //
  3031.     // Raw methods provided by interface
  3032.     //
  3033.  
  3034.     virtual HRESULT __stdcall get_Item (
  3035.         VARIANT Index,
  3036.         struct Container * * ppctn ) = 0;
  3037. };
  3038.  
  3039. struct __declspec(uuid("00000099-0000-0010-8000-00aa006d2ea4"))
  3040. Document : _DAO
  3041. {
  3042.     //
  3043.     // Property data
  3044.     //
  3045.  
  3046.     __declspec(property(get=GetName))
  3047.     _bstr_t Name;
  3048.     __declspec(property(get=GetOwner,put=PutOwner))
  3049.     _bstr_t Owner;
  3050.     __declspec(property(get=GetContainer))
  3051.     _bstr_t Container;
  3052.     __declspec(property(get=GetUserName,put=PutUserName))
  3053.     _bstr_t UserName;
  3054.     __declspec(property(get=GetPermissions,put=PutPermissions))
  3055.     long Permissions;
  3056.     __declspec(property(get=GetDateCreated))
  3057.     _variant_t DateCreated;
  3058.     __declspec(property(get=GetLastUpdated))
  3059.     _variant_t LastUpdated;
  3060.     __declspec(property(get=GetAllPermissions))
  3061.     long AllPermissions;
  3062.  
  3063.     //
  3064.     // Wrapper methods for error-handling
  3065.     //
  3066.  
  3067.     _bstr_t GetName ( );
  3068.     _bstr_t GetOwner ( );
  3069.     void PutOwner (
  3070.         _bstr_t pbstr );
  3071.     _bstr_t GetContainer ( );
  3072.     _bstr_t GetUserName ( );
  3073.     void PutUserName (
  3074.         _bstr_t pbstr );
  3075.     long GetPermissions ( );
  3076.     void PutPermissions (
  3077.         long pl );
  3078.     _variant_t GetDateCreated ( );
  3079.     _variant_t GetLastUpdated ( );
  3080.     long GetAllPermissions ( );
  3081.     PropertyPtr CreateProperty (
  3082.         const _variant_t & Name = vtMissing,
  3083.         const _variant_t & Type = vtMissing,
  3084.         const _variant_t & Value = vtMissing,
  3085.         const _variant_t & DDL = vtMissing );
  3086.  
  3087.     //
  3088.     // Raw methods provided by interface
  3089.     //
  3090.  
  3091.     virtual HRESULT __stdcall get_Name (
  3092.         BSTR * pbstr ) = 0;
  3093.     virtual HRESULT __stdcall get_Owner (
  3094.         BSTR * pbstr ) = 0;
  3095.     virtual HRESULT __stdcall put_Owner (
  3096.         BSTR pbstr ) = 0;
  3097.     virtual HRESULT __stdcall get_Container (
  3098.         BSTR * pbstr ) = 0;
  3099.     virtual HRESULT __stdcall get_UserName (
  3100.         BSTR * pbstr ) = 0;
  3101.     virtual HRESULT __stdcall put_UserName (
  3102.         BSTR pbstr ) = 0;
  3103.     virtual HRESULT __stdcall get_Permissions (
  3104.         long * pl ) = 0;
  3105.     virtual HRESULT __stdcall put_Permissions (
  3106.         long pl ) = 0;
  3107.     virtual HRESULT __stdcall get_DateCreated (
  3108.         VARIANT * pvar ) = 0;
  3109.     virtual HRESULT __stdcall get_LastUpdated (
  3110.         VARIANT * pvar ) = 0;
  3111.     virtual HRESULT __stdcall get_AllPermissions (
  3112.         long * pl ) = 0;
  3113.     virtual HRESULT __stdcall raw_CreateProperty (
  3114.         VARIANT Name,
  3115.         VARIANT Type,
  3116.         VARIANT Value,
  3117.         VARIANT DDL,
  3118.         struct Property * * pprp ) = 0;
  3119. };
  3120.  
  3121. struct __declspec(uuid("0000009b-0000-0010-8000-00aa006d2ea4"))
  3122. Documents : _Collection
  3123. {
  3124.     //
  3125.     // Property data
  3126.     //
  3127.  
  3128.     __declspec(property(get=GetItem))
  3129.     DocumentPtr Item[];
  3130.  
  3131.     //
  3132.     // Wrapper methods for error-handling
  3133.     //
  3134.  
  3135.     DocumentPtr GetItem (
  3136.         const _variant_t & Index );
  3137.  
  3138.     //
  3139.     // Raw methods provided by interface
  3140.     //
  3141.  
  3142.     virtual HRESULT __stdcall get_Item (
  3143.         VARIANT Index,
  3144.         struct Document * * ppdoc ) = 0;
  3145. };
  3146.  
  3147. struct __declspec(uuid("00000041-0000-0010-8000-00aa006d2ea4"))
  3148. Connection : IDispatch
  3149. {
  3150.     //
  3151.     // Property data
  3152.     //
  3153.  
  3154.     __declspec(property(get=GetName))
  3155.     _bstr_t Name;
  3156.     __declspec(property(get=GetConnect))
  3157.     _bstr_t Connect;
  3158.     __declspec(property(get=GetDatabase))
  3159.     DatabasePtr Database;
  3160.     __declspec(property(get=GethDbc))
  3161.     long hDbc;
  3162.     __declspec(property(get=GetQueryTimeout,put=PutQueryTimeout))
  3163.     short QueryTimeout;
  3164.     __declspec(property(get=GetQueryDefs))
  3165.     QueryDefsPtr QueryDefs;
  3166.     __declspec(property(get=GetTransactions))
  3167.     VARIANT_BOOL Transactions;
  3168.     __declspec(property(get=GetRecordsAffected))
  3169.     long RecordsAffected;
  3170.     __declspec(property(get=GetStillExecuting))
  3171.     VARIANT_BOOL StillExecuting;
  3172.     __declspec(property(get=GetUpdatable))
  3173.     VARIANT_BOOL Updatable;
  3174.     __declspec(property(get=GetRecordsets))
  3175.     RecordsetsPtr Recordsets;
  3176.  
  3177.     //
  3178.     // Wrapper methods for error-handling
  3179.     //
  3180.  
  3181.     _bstr_t GetName ( );
  3182.     _bstr_t GetConnect ( );
  3183.     DatabasePtr GetDatabase ( );
  3184.     long GethDbc ( );
  3185.     short GetQueryTimeout ( );
  3186.     void PutQueryTimeout (
  3187.         short pSeconds );
  3188.     VARIANT_BOOL GetTransactions ( );
  3189.     long GetRecordsAffected ( );
  3190.     VARIANT_BOOL GetStillExecuting ( );
  3191.     VARIANT_BOOL GetUpdatable ( );
  3192.     QueryDefsPtr GetQueryDefs ( );
  3193.     RecordsetsPtr GetRecordsets ( );
  3194.     HRESULT Cancel ( );
  3195.     HRESULT Close ( );
  3196.     _QueryDefPtr CreateQueryDef (
  3197.         const _variant_t & Name = vtMissing,
  3198.         const _variant_t & SQLText = vtMissing );
  3199.     HRESULT Execute (
  3200.         _bstr_t Query,
  3201.         const _variant_t & Options = vtMissing );
  3202.     RecordsetPtr OpenRecordset (
  3203.         _bstr_t Name,
  3204.         const _variant_t & Type = vtMissing,
  3205.         const _variant_t & Options = vtMissing,
  3206.         const _variant_t & LockEdit = vtMissing );
  3207.  
  3208.     //
  3209.     // Raw methods provided by interface
  3210.     //
  3211.  
  3212.     virtual HRESULT __stdcall get_Name (
  3213.         BSTR * pbstr ) = 0;
  3214.     virtual HRESULT __stdcall get_Connect (
  3215.         BSTR * pbstr ) = 0;
  3216.     virtual HRESULT __stdcall get_Database (
  3217.         struct Database * * ppdb ) = 0;
  3218.     virtual HRESULT __stdcall get_hDbc (
  3219.         long * phDbc ) = 0;
  3220.     virtual HRESULT __stdcall get_QueryTimeout (
  3221.         short * pSeconds ) = 0;
  3222.     virtual HRESULT __stdcall put_QueryTimeout (
  3223.         short pSeconds ) = 0;
  3224.     virtual HRESULT __stdcall get_Transactions (
  3225.         VARIANT_BOOL * pb ) = 0;
  3226.     virtual HRESULT __stdcall get_RecordsAffected (
  3227.         long * pRecords ) = 0;
  3228.     virtual HRESULT __stdcall get_StillExecuting (
  3229.         VARIANT_BOOL * pStillExec ) = 0;
  3230.     virtual HRESULT __stdcall get_Updatable (
  3231.         VARIANT_BOOL * pStillExec ) = 0;
  3232.     virtual HRESULT __stdcall get_QueryDefs (
  3233.         struct QueryDefs * * ppqdfs ) = 0;
  3234.     virtual HRESULT __stdcall get_Recordsets (
  3235.         struct Recordsets * * pprsts ) = 0;
  3236.     virtual HRESULT __stdcall raw_Cancel ( ) = 0;
  3237.     virtual HRESULT __stdcall raw_Close ( ) = 0;
  3238.     virtual HRESULT __stdcall raw_CreateQueryDef (
  3239.         VARIANT Name,
  3240.         VARIANT SQLText,
  3241.         struct _QueryDef * * ppqdf ) = 0;
  3242.     virtual HRESULT __stdcall raw_Execute (
  3243.         BSTR Query,
  3244.         VARIANT Options = vtMissing ) = 0;
  3245.     virtual HRESULT __stdcall raw_OpenRecordset (
  3246.         BSTR Name,
  3247.         VARIANT Type,
  3248.         VARIANT Options,
  3249.         VARIANT LockEdit,
  3250.         struct Recordset * * pprst ) = 0;
  3251. };
  3252.  
  3253. struct __declspec(uuid("00000043-0000-0010-8000-00aa006d2ea4"))
  3254. Connections : _Collection
  3255. {
  3256.     //
  3257.     // Property data
  3258.     //
  3259.  
  3260.     __declspec(property(get=GetItem))
  3261.     ConnectionPtr Item[];
  3262.  
  3263.     //
  3264.     // Wrapper methods for error-handling
  3265.     //
  3266.  
  3267.     ConnectionPtr GetItem (
  3268.         const _variant_t & Index );
  3269.  
  3270.     //
  3271.     // Raw methods provided by interface
  3272.     //
  3273.  
  3274.     virtual HRESULT __stdcall get_Item (
  3275.         VARIANT Index,
  3276.         struct Connection * * ppconn ) = 0;
  3277. };
  3278.  
  3279. struct __declspec(uuid("000000fd-0000-0010-8000-00aa006d2ea4"))
  3280. Snapshot : Recordset
  3281. {};
  3282.  
  3283. struct __declspec(uuid("000000fe-0000-0010-8000-00aa006d2ea4"))
  3284. Table : Recordset
  3285. {};
  3286.  
  3287. struct __declspec(uuid("000000ff-0000-0010-8000-00aa006d2ea4"))
  3288. Dynaset : Recordset
  3289. {};
  3290.  
  3291. //
  3292. // Wrapper method implementations
  3293. //
  3294.  
  3295. #include "dao2535.tli"
  3296.  
  3297. } // namespace DAO
  3298.  
  3299. #pragma pack(pop)
  3300.